第三章 指令系统-4.ppt
文本预览下载声明
五、串处理指令 设置方向标志指令 CLD、STD 串处理指令 MOVS、 STOS、 LODS 、 CMPS、 SCAS 、 INS、 OUTS 串重复前缀 REP、 REPE / REPZ、 REPNE / REPNZ 与 REP 配合工作的 MOVS / STOS / LODS 1、MOVS 串传送指令 四种格式: MOVS DST, SRC MOVSB (字节) MOVSW (字) MOVSD (双字) 例:MOVS ES: BYTE PTR [DI], DS: [SI] 执行操作: (1) ((DI)) ← ((SI)) (2) 字节操作:(SI)←(SI)±1, (DI)←(DI)±1 字操作: (SI)←(SI)±2, (DI)←(DI)±2 方向标志 DF=0 时用 + ,DF=1 时用 - 。 2、STOS 存入串指令: 例:把 附加段 中的 10 个字节缓冲区置为 20H lea di, mess2 mov al, 20H mov cx, 10 cld rep stosb 3、LODS 从串取指令: 4、INS 串输入指令: 5、OUTS 串输出指令: 与 REPE / REPZ(REPNE / REPNZ)配合工作的CMPS 和 SCAS 1、 REPE / REPZ当相等/为零时串重复操作 2、 REPNE / REPNZ当不相等/不为零时串重复操作 3、CMPS 串比较指令 4、SCAS 串扫描指令 六、控制转移指令 无条件转移指令 JMP 条件转移指令 JZ / JNZ 、 JE / JNE、 JS / JNS、 JO / JNO、 JP / JNP、 JB / JNB、 JL / JNL、 JBE / JNBE、 JLE / JNLE、 JCXZ 循环指令 LOOP、LOOPZ / LOOPE、LOOPNZ / LOOPNE 子程序调用和返回指令 CALL、RET 中断与中断返回指令 INT、INTO、IRET 无条件转移指令1、段内直接短转移 格式: JMP SHORT OPR 执行操作: (IP) ← (IP) + 8位位移量 386及后继机型:(EIP) ← (EIP) + 8位位移量 若操作数长度16位,则需(EIP) ← (EIP) AND 0000FFFFH 例: JMP SHORT HELLO … … HELLO: MOV AL, 3 OPR是符号地址,转移范围-128~127 2、段内直接近转移 格式: JMP NEAR PTR OPR 执行操作: (IP) ← (IP) + 16位位移量 386及后继机型:(EIP) ← (EIP) +32位位移量 若操作数长度16位,则需(EIP) ← (EIP) AND 0000FFFFH OPR是符号地址,16位位移量时转移范围可达64K, 32位位移量时转移范围可达4G。 3、段内间接近转移 格式: JMP WORD PTR OPR 执行操作: (IP) ← (EA) 386及后继机型:(EIP) ← (EA) 若操作数长度16位,则需(EIP) ← (EIP) AND 0000FFFFH 有效地址EA由OPR的寻址方式决定。可以是除了立即数以外的任何寻址方式。 转移的目标地址由寄存器或存储单元的内容给出。 例:JMP SI 若(SI)=1200H,则指令执行后,(IP)=1200H,于是转向代码段的偏
显示全部