8088汇编数据与端口传输指令速查

需积分: 0 40 下载量 113 浏览量 更新于2024-11-04 收藏 276KB DOC 举报
签寄存器AH的内容装入标志寄存器FLAGS。 SAHF标志寄存器传送,把标志寄存器AH的内容装入标志寄存器FLAGS。 PUSHF压入标志寄存器FLAGS的内容到堆栈。 POPF弹出堆栈的内容到标志寄存器FLAGS。 这些指令在处理程序状态和控制流时非常关键,因为它们允许程序员直接访问和修改处理器的状态。 二、算术运算指令 ─────────────────────────────────────── 1.基本算术运算 ADD加法,将一个操作数加到另一个操作数上。 SUB减法,从一个操作数中减去另一个操作数。 MUL乘法,执行无符号乘法,结果存储在AX或DX:AX中。 IMUL有符号乘法,执行有符号乘法。 DIV除法,执行无符号除法,余数存储在AL或AX中,商在AX或DX:AX中。 IDIV有符号除法,执行有符号除法,余数存储在AL或AX中,商在AX或DX:AX中。 2.逻辑运算 AND按位与,两个操作数的每一位进行与运算。 OR按位或,两个操作数的每一位进行或运算。 XOR按位异或,两个操作数的每一位进行异或运算。 NOT取反,对操作数的每一位取反。 SHL/SHR左移/右移,将操作数的位向左或向右移动指定的次数。 RCL/RCR循环左移/循环右移,在移位的同时处理进位标志。 3.增减运算 INC增加,将操作数加1。 DEC减少,将操作数减1。 三、控制流程指令 ─────────────────────────────────────── JMP跳转,无条件地转移到指定的地址。 CALL调用子程序,将返回地址压入堆栈,然后跳转到指定地址。 RET返回,从堆栈中弹出返回地址并跳转到该地址。 LOOP循环控制,如果CX不为0,则递减CX并跳转到指定地址。 jecxz跳跃如果CF等于0,根据条件进行跳转。 jcxz跳跃如果CX等于0,根据条件进行跳转。 jecb跳跃如果CF等于1,根据条件进行跳转。 其他如JE, JNE, JL, JG等条件跳转指令则根据不同的标志位状态决定是否跳转。 四、处理标志位的指令 ─────────────────────────────────────── TEST测试,对两个操作数进行按位与运算,但不改变结果,仅影响标志位。 clc清除进位标志。 stc设置进位标志。 cmc反置进位标志。 cld设置方向标志,使数据处理从低地址向高地址进行。 std设置方向标志,使数据处理从高地址向低地址进行。 五、位操作指令 ─────────────────────────────────────── BIT测试位,检查指定位是否为1。 SETC/SETNC设置/清除进位标志位,根据当前的进位标志状态设置或清除相应的位。 SETZ/SETNZ设置/清除零标志位,根据当前的零标志状态设置或清除相应的位。 其他如SETPE, SETPO等根据标志位设置或清除特定位的指令。 六、串操作指令 ─────────────────────────────────────── REP/REPE/REPZ重复执行指令,直到CX寄存器变为0或指定条件不再满足。 STOSB/STOSW/STOSD存储字节/字/双字,将AL/AX/EAX的内容存放到内存中,并递增/递减DI/ES:DI。 LODSB/LODSW/LODSD加载字节/字/双字,将内存中的内容加载到AL/AX/EAX,并递增/递减SI/ES:SI。 SCASB/SCASW/SCASD扫描字节/字/双字,比较AL/AX/EAX与内存中的内容,根据比较结果更新标志位并调整DI/ES:DI。 8088汇编语言是早期个人计算机编程的基础,它直接控制硬件,提供高度的灵活性和性能。了解并熟练掌握这些指令对于理解和编写底层系统程序至关重要。通过这个速查手册,开发者可以快速查找和应用所需的指令,从而提高编程效率。