文档详情

微机原理与接口技术(龚尚福)第3章.ppt

发布:2017-03-06约2.63万字共213页下载文档
文本预览下载声明
2) LODS指令 汇编格式1:LODSB 汇编格式2:LODSW 汇编格式3:LODS 源操作数存储器寻址方式 执行的操作: (1) 若字节: AL←((DS):(SI)) 若 字: AX←((DS):(SI)) (2) 若字节: (SI)←(SI)±1 (DF=0用“+”,否则用“-”) 若 字: (SI)←(SI)±2 (DF=0用“+”,否则用“-”) 说明: ① 本条指令不影响标志位。 ② 本条指令是隐含寻址,将数据段中(SI)指向的一个字或字节送入AL或AX,格式3中的源操作数只供汇编程序作类型检查。 ③ 本条指令一般不与REP联用。 3) STOS指令 汇编格式1:STOSB 汇编格式2:STOSW 汇编格式3:STOS目的操作数 执行的操作: (1) 若字节: ((ES):(DI))←AL 若 字: ((ES):(DI))←AX (2) 若字节: (DI)←(DI)±1 (DF=0用“+”,否则用“-”) 若 字: (DI)←(DI)±2 (DF=0用“+”,否则用“-”) 说明: ① 本条指令不影响标志位。 ② 与上两条指令相同,汇编格式3中的目的操作数只供汇编程序作类型检查。 ③ 本条指令可与REP联合使用,一般用来实现清除内存某一区域。 2. 串比较指令 每条串比较指令都可比较两个字或字节操作数的大小,但不保存结果。若加上重复前缀REPE/REPZ或REPNE/REPNZ,可按一定条件重复比较。 ● REPE/REPZ 该前缀的含义是:当相等/为零时重复比较。 汇编格式:REPE/REPZ CMPS/SCAS 执行的操作: (1) 当(CX)=0(即数据串比较完成)或ZF=0(即某次比较结果不相等)时退出,否则(即 (CX)≠0且ZF=1)往下执行。 (2) (CX)←(CX)-1。 (3) 执行其后的串比较指令。 (4) 执行(1)~(3)。 说明: ① REPE与REPZ是完全相同的,只是表达式不同而已。与REP相比,退出重复执行的条件除(CX)=0外,还增加了ZF=0的条件,也就是说,只要两数相等就可继续比较,如果遇到两数不相等可提前结束比较操作。 ② (CX)的递减不影响标志位。 ● REPNE/REPNZ 该前缀的含义是:当不相等/不为零时重复比较。 汇编格式:REPNE/REPNZ CMPS/SCAS 执行的操作:除退出条件为(CX)=0或ZF=1外,其他操作与REPE/REPZ相同。也就是说,只要两数不相等就可继续比较,如果遇到两数相等可提前结束比较操作。 1) CMPS指令 汇编格式1:CMPSB 汇编格式2:CMPSW 汇编格式3:CMPS 源操作数存储器寻址方式,目的操作数存储器寻址方式执行的操作: (1) ((DS):(SI))-((ES):(DI)) (2) 若字节是(SI)←(SI)±1,(DI)←(DI)±1时,则方向标志位DF=0用“+”,否则用“-”;若字是(SI)←(SI)±2(DI)(DI)±2时,则方向标志位DF=0用“+”,否则用“-”。 说明: ① 本条指令执行后,根据两操作数相减结果置标志位,但不保存结果。 ② 本条指令与REPE/REPNE相联合可实现两个数据串的比较。 2) SCAS指令 汇编格式1:SCASB 汇编格式2:SCASW 汇编格式3:SCAS目的操作数 执行的操作: (1) 若字节是:(AL)-((ES):(DI)) 若字:(AX)-((ES):(DI)) 说明: ① 本指令根据相减结果置标志位。 ② 本指令与REPE/REPNE相联合可实现从一个字符串中查找一个指定的字符的功能。 【例3-39】 假设有一起始地址为BLOCK,长度为100个字节的存储区,现要对这一存储区进行测试,看其中是否有内容为00H的存储单元。 MOV DI,OFFSET BLOCK CLD MOV CX,100 XOR AL,AL REPNE SCASB JZ
显示全部
相似文档