《最新微机原理及接口技术第三章-3PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理及接口技术第三章-3PPT课件.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理及接口技术第三微机原理及接口技术第三章章-3-3微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所二、二、8086/8088的指令系统的指令系统(续续)内容内容:3、逻辑运算和移位指令、逻辑运算和移位指令 (一)逻辑运算指令(一)逻辑运算指令 (二)移位指令(二)移位指令 (三)循环移位指令(三)循环移位指令 4、串操作指令、串操作指令 (一)(一)与与与与REPREP相配合工作的相配合工作的相配合工作的相配合工作的MOVSMOVS、STOSSTOS、LODSLODS指令指令指令指令 (二)(二)与与与与REPE/REPZREPE/REPZ和和和和RE
2、PNE/REPNZREPNE/REPNZ联合工作的联合工作的联合工作的联合工作的CMPSCMPS和和和和 SCAS SCAS指令指令指令指令微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息
3、学院自动化仪表研究所信息学院自动化仪表研究所3 3、OROR(Lgical inclusive or)Lgical inclusive or)逻辑逻辑逻辑逻辑“或或或或”指令指令指令指令格式:格式:OR dset,src;(;(dset)(dset)(src)dest:dest:寄存器、存储器。寄存器、存储器。寄存器、存储器。寄存器、存储器。src:src:立即数、寄存器、存储器。立即数、寄存器、存储器。立即数、寄存器、存储器。立即数、寄存器、存储器。执行操作:执行操作:进行按位进行按位“或或”运算运算 两位操作数中任一位为两位操作数中任一位为1(或都为(或都为1),),则该位(结果)则该位(
4、结果)=1,否则为否则为0。操作类型举例:操作类型举例:OR BL,0F6H;寄存器寄存器 立即数立即数OR AH,BL;寄存器;寄存器 寄存器寄存器OR CL,BETABXDI;寄存器寄存器 存储器存储器OR GAMMASI,DX;存储器;存储器 寄存器寄存器OR BYTE PTR MEM_BYTE,80H;存储器;存储器 立即数立即数微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所注意:注意:“或或或或”指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;影响条件码:影响条件码:CF0F
5、=0,A未定义未定义,SF ZF PF 用途:用途:(1)清)清CF,自己与自己自己与自己自己与自己自己与自己“或或或或”,操作数不变,操作数不变,操作数不变,操作数不变,CF=0CF=0 例:例:OR AL ;(;(AL)不变,不变,CF=0(2)使某个操作数使某个操作数若干位保持不变,若干位与若干位保持不变,若干位与若干位保持不变,若干位与若干位保持不变,若干位与“0”0”或或或或;而若干位置而若干位置而若干位置而若干位置1 1。若干位与。若干位与。若干位与。若干位与“1”1”或或或或 。(3)将两个操作数信息组合。将两个操作数信息组合。若(若(AL)=03H 用用OR指令组合使指令组合使
6、(AL)=33H=3。OR AL,30H ;(;(AL)=33H 微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所4 4、XORXOR(Logical exclusive or)Logical exclusive or)逻辑逻辑逻辑逻辑“异或异或异或异或”指令指令指令指令格式:格式:XOR dset,src ;B/W(dset)(dset)(src)dest:dest:寄存器、存储器。寄存器、存储器。寄存器、存储器。寄存器、存储器。src:src:立即数、寄存器、存储器。立即数、寄存器、存储器。立即数、寄存器、存储器。立即数、寄存器、存储器。执行的操作:对指
7、令的两个操作数进行按位执行的操作:对指令的两个操作数进行按位“异或异或”运算。运算。二位不相同时为二位不相同时为二位不相同时为二位不相同时为1,1,相同时为相同时为相同时为相同时为0 0。操作类型举例:操作类型举例:XOR DI,23F6HH ;寄存器寄存器 立即数立即数XOR SI,DX ;寄存器;寄存器 寄存器寄存器XOR CL,BUFFER ;寄存器寄存器 存储器存储器XOR MEMBX,AX ;存储器;存储器 寄存器寄存器XOR byte ptrTABLEBPSI,3DH ;存储器存储器 立即数立即数微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所注
8、意:注意:“或或或或”指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;影响条件码:影响条件码:CF0F=0,A未定义未定义,SF ZF PF 用途:用途:对某些特定位求反,某些特定位与对某些特定位求反,某些特定位与对某些特定位求反,某些特定位与对某些特定位求反,某些特定位与“1”1”其余位保持不变,保持不变与其余位保持不变,保持不变与其余位保持不变,保持不变与其余位保持不变,保持不变与“0”0”。应用举例:应用举例:例例1:将(将(AL)中的第中的第1、3、5、7位求反位求反 0、2、4、6位保持不变。位保持不变。MOV
9、AL,0FHXOR AL,0AAH微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所例例2:比较三条(比较三条(AX)清清“0”指令:指令:XOR AX,AX ;清清AX,清清CF,2个字节,个字节,3个个T。SUB AX,AX;清清AX,清清CF,2个字节,个字节,3个个T。MOV AX,0 ;清清AX,不影响标志位,不影响标志位,3个字节,个字节,4个个T。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所5 5、NOTNOT(Logical not)Logical not)逻辑逻辑逻辑逻辑“非非非非”指令指令指令指令格式
10、:格式:NOT dest ;B/W 指令操作数只有一个指令操作数只有一个,指令指令对操作数按位求反对操作数按位求反对操作数按位求反对操作数按位求反。执行操作:执行操作:字节求反:(字节求反:(dest)0FFH-(dest)字求反:字求反:(dest 0FFFFH-(dest)源操作数:寄存器、存储器。不能是立即数。源操作数:寄存器、存储器。不能是立即数。源操作数:寄存器、存储器。不能是立即数。源操作数:寄存器、存储器。不能是立即数。影响标志位:对标志位无影响。影响标志位:对标志位无影响。操作类型举例:操作类型举例:NOT AH;8位寄存器求反位寄存器求反 NOT CX;16位寄存器求反位寄存
11、器求反 NOT BYTE PTR BP;8位存储器求反位存储器求反 NOT WORD PTR COUNT ;16位存储器求反位存储器求反微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所综合举例:综合举例:1使某些位置使某些位置“0”。IN AL,61H;(;(AL)=B 设备控制寄存器设备控制寄存器 想使此位为想使此位为0执行指令:执行指令:AND ALAND AL,0FDH0FDH 即可。即可。2.使某些位置使某些位置“1”。IN AL,61H;(;(AL)=执行指令:执行指令:OR ALOR AL,0202 想使此位为想使此位为“1”3.使某些位求反:使
12、某些位求反:IN AL,61H ;(;(AL)=0 XOR ALXOR AL,02H02H 0 0 0 0 0 0 1 0 1 4.测试某些位(测奇偶性):测试某些位(测奇偶性):测试测试“奇奇”“偶偶”性。性。见见TEST指令的用途例子。指令的用途例子。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(二)移位指令(二)移位指令(二)移位指令(二)移位指令 (8086 (8086有有有有8 8条移位指令条移位指令条移位指令条移位指令):1 1、算逻移位指令算逻移位指令算逻移位指令算逻移位指令(4条条):SHL,SHR,SHL,SHR,SAL,SAR SAL
13、,SAR。(1)、)、SHL/SAL(Shift logical left/shift arithmetic left)逻辑左移逻辑左移/算术左移指令算术左移指令(2)、)、SHR(Shift logical right)逻辑右移指令逻辑右移指令(3)、)、SAR(Shift arithmetic right )算术右移指令算术右移指令2 2、循环移位、循环移位、循环移位、循环移位(4条)条):ROL,ROR,RCL,RCRROL,ROR,RCL,RCR。(1)、)、ROL(Rotate left)不含不含CF循环左移指令循环左移指令(2)、)、ROR(Rotate right)不含不含CF循
14、环右移指令循环右移指令(3)、)、RCL(Rotate left through carry)含含CF循环左移指令循环左移指令(4)、)、RCR(Rotate right through carry)含含CF循环右移指令循环右移指令微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所共同点:共同点:所有移位指令都可以作所有移位指令都可以作B/W操作。操作。指令中的指令中的 destdest:寄存器、存储器寻址方式。寄存器、存储器寻址方式。寄存器、存储器寻址方式。寄存器、存储器寻址方式。cnt:表示移位次数表示移位次数 cnt=1,1可写在指令中,不能是可写在指令
15、中,不能是1以外的常数。以外的常数。cnt1,用,用CL存放移位次数存放移位次数,不能是其他寄存器。不能是其他寄存器。如:如:SAL AX,1 MOV CL,4 SAL AX,CL 利用移位指令编制利用移位指令编制 *,/程序,程序,执行时间比直接用执行时间比直接用*,/指令快,指令快,速度可提高速度可提高5-6倍。倍。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所1 1、算逻移位指令算逻移位指令算逻移位指令算逻移位指令(4条条):SHL,SHR,SHL,SHR,SAL,SAR SAL,SAR(1)、)、SHL/SAL(Shift logical left
16、/shift arithmetic left)逻辑左移逻辑左移/算术左移指令算术左移指令格式:格式:SHL dest,cnt;逻辑左移指令;逻辑左移指令,B/W SAL dest,cnt ;算术左移指令;算术左移指令,B/W dest:寄存器、存储器寻址方式。寄存器、存储器寻址方式。cnt:表示移位次数表示移位次数 cnt=1,1可写在指令中。可写在指令中。cnt1,用,用CL存放移位次数存放移位次数。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所执行操作:执行操作:相当于无符号数的相当于无符号数的2功能。功能。SHL/SAL指令操作示意图如下图所示:指令
17、操作示意图如下图所示:指令格式举例:指令格式举例:SHL AH,1 SAL SI,CL SAL WORD PTR BX+5,1 SHL BYTE PTR,CL0CFdest微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(2)、)、SHR(Shift logical right)逻辑右移指令逻辑右移指令格式:格式:SHR dest,cnt;逻辑右移指令;逻辑右移指令,B/W执行操作:执行操作:相当于无符号数的相当于无符号数的2功能。功能。SHR指令操作示意图如下图所示:指令操作示意图如下图所示:dest:寄存器、存储器寻址方式。寄存器、存储器寻址方式。指令格
18、式举例:指令格式举例:SHR BL,1SHR AX,CLSHR BYTE PTR DI+BP,1SHR WORD PTR BLOCK ,CLdestCF0微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(3 3)、)、)、)、SARSAR(Shift arithmetic right )算术右移指令算术右移指令算术右移指令算术右移指令格式:格式:SAR dest,cnt;算术右移指令;算术右移指令,B/W执行操作:执行操作:相当于带符号数的相当于带符号数的2功能功能 SAR指令操作示意图如下图所示指令操作示意图如下图所示dsetdest:dest:寄存器、存
19、储器寻址方式。寄存器、存储器寻址方式。寄存器、存储器寻址方式。寄存器、存储器寻址方式。指令格式举例:指令格式举例:SAR AL,1SHR DL,CLSHR WORD PTR TABLESI,1SHR BYTE PTR STATUS ,CLCF微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所2 2、循环移位、循环移位、循环移位、循环移位(4条)条):ROL,ROR,RCL,RCRROL,ROR,RCL,RCR。共同点:共同点:ROLROL、RORROR 不含不含CF循环移位指令,循环移位指令,操作数移动操作数移动操作数移动操作数移动8 8次后还原次后还原次后还
20、原次后还原。RCLRCL、RCRRCR 含含CF循环移位指令,循环移位指令,操作数移动操作数移动操作数移动操作数移动9 9次后还原次后还原次后还原次后还原。影响标志影响标志OF、CF ROL、RCL影响标志影响标志OF、CF情况相同情况相同;ROR、RCR影响标志影响标志OF、CF情况相同情况相同。SF、ZF、PF、AF不影响。不影响。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(1 1)、)、)、)、ROLROL(Rotate left)不含不含不含不含CFCF循环左移指令循环左移指令循环左移指令循环左移指令格式:格式:ROL dest,cnt;不含;
21、不含CF循环左移指令循环左移指令,B/W执行操作:执行操作:ROL指令操作示意图如下图所示指令操作示意图如下图所示 移动移动移动移动8 8次后操作数还原。次后操作数还原。次后操作数还原。次后操作数还原。CFdest指令格式举例:指令格式举例:ROL BH,1ROL DX,CLROL WORD PTR TABLEDI,1ROL BYTE PTR ALPHA ,CL微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(2 2)、)、)、)、RORROR(Rotate right)不含不含不含不含CFCF循环右移指令循环右移指令循环右移指令循环右移指令格式:格式:RO
22、R dest,cnt;不含;不含CF循环右移指令循环右移指令,B/W执行操作:执行操作:ROR指令操作示意图如下图所示指令操作示意图如下图所示 右移右移右移右移8 8次后操作数还原。次后操作数还原。次后操作数还原。次后操作数还原。CFdest指令格式举例:指令格式举例:ROR CX,1ROL BH,CLROL BYTE PTRBETA,1ROL WORD PTR COUNT,CL微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(3 3)、)、)、)、RCLRCL(Rotate left through carry)含含含含CFCF循环左移指令循环左移指令循环
23、左移指令循环左移指令格式:格式:RCR dest,cnt;含;含CF循环左移指令循环左移指令,B/W执行操作:执行操作:RCL指令操作示意图如下图所示指令操作示意图如下图所示 左移左移左移左移9 9次后操作数还原次后操作数还原次后操作数还原次后操作数还原。CFdest指令格式举例:指令格式举例:RCL BX,1RCL DL,CLRCL BYTE PTR ARRAYDI,1RCL WORD PTR SI+BP,CL影响标志:影响标志:影响标志:影响标志:RCL RCL 与与与与ROL ROL 影响标志影响标志影响标志影响标志OFOF、CFCF情况相同情况相同情况相同情况相同微机原理与接口技术微机
24、原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(4 4)、)、)、)、RCRRCR(Rotate right through carry)含含含含CFCF循环右移指令循环右移指令循环右移指令循环右移指令格式:格式:RCR dest,cnt;含;含CF循环左移指令循环左移指令,B/W执行操作:执行操作:RCR指令操作示意图如下图所示指令操作示意图如下图所示 右移右移右移右移9 9次后操作数还原。次后操作数还原。次后操作数还原。次后操作数还原。CFdest指令格式举例:指令格式举例:RCR DI,1RCR SI,CLRCR WORD PTRSI+BX+3,1RCL BYTE PTR
25、PORT,CL影响标志:影响标志:影响标志:影响标志:RCR RCR 与与与与 ROR ROR 影响标志影响标志影响标志影响标志OFOF、CFCF情况相同情况相同情况相同情况相同微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所循环移位指令循环移位指令循环移位指令循环移位指令(Rotate)与移位指令与移位指令与移位指令与移位指令(Shift)不同点不同点不同点不同点:循环移位指令移位后,操作数中原来各数位的信息不会循环移位指令移位后,操作数中原来各数位的信息不会丢失,这是移动了位置,必要时可以恢复。丢失,这是移动了位置,必要时可以恢复。循环移位指令可以对操作
26、数进行测试。循环移位指令可以对操作数进行测试。例:测试例:测试(AL)5=?0MOV CL,3ROL AL,CLROL AL,CLJNC ZEROZERO:微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所4、串操作指令、串操作指令(String manipulation)“串串”就是内存中一段地址相连的字节或字。就是内存中一段地址相连的字节或字。串操作串操作串操作串操作对串中各项进行操作,也叫数据块操作对串中各项进行操作,也叫数据块操作对串中各项进行操作,也叫数据块操作对串中各项进行操作,也叫数据块操作。8086有有5种基本操作:种基本操作:(1)MOVS(
27、Move string)串传送指令串传送指令 (2)CMPS(Compare string)串比较指令串比较指令 (3)SCAS(Scan string)串扫描指令串扫描指令 (4)LODS(Load from string)从串取指令从串取指令 (5)STOS(Store in to string)存入串指令存入串指令微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所共同点:共同点:共同点:共同点:可以只有源操作数,可以只有目标操作数,可能二者都有。可以只有源操作数,可以只有目标操作数,可能二者都有。源操作数用源操作数用SI 寻址,隐含寻址,隐含DS值为段地
28、址,可以用段跨越前缀指定其它值为段地址,可以用段跨越前缀指定其它段。段。目标操作数用目标操作数用DI寻址,隐含寻址,隐含ES为段地址。为段地址。每次操作对每次操作对SI、DI 调整:调整:DF=1DF=1,DIDI、SISI自动自动自动自动-1 (-1 (字节)或字节)或字节)或字节)或-2-2(字);(字);(字);(字);DF=0DF=0,DIDI、SISI自动自动自动自动+1+1(字节)或(字节)或(字节)或(字节)或+2+2(字)。(字)。(字)。(字)。与上述指令基本配合使用前缀有:与上述指令基本配合使用前缀有:REPREP(Repeat)重复。重复。重复。重复。REPE/REPZR
29、EPE/REPZ(Repeat while equal/zero)相等相等相等相等/为零则重复。为零则重复。为零则重复。为零则重复。REPNE/REPNZREPNE/REPNZ(Repeat while not equal/not zero)不相等不相等不相等不相等/不为零则重复不为零则重复不为零则重复不为零则重复。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所下面分二种情况来讨论:下面分二种情况来讨论:(一一一一)与与与与REPREP相配合工作的相配合工作的相配合工作的相配合工作的MOVSMOVS、STOSSTOS、LODSLODS指令指令指令指令 RE
30、P REP 重复串操作直到(重复串操作直到(重复串操作直到(重复串操作直到(CXCX)=0=0为止为止为止为止(二二二二)与与与与REPE/REPZREPE/REPZ和和和和REPNE/REPNZREPNE/REPNZ联合工作的联合工作的联合工作的联合工作的CMPSCMPS和和和和SCASSCAS 指令指令指令指令 REPE/REPZ REPE/REPZ 当相等当相等当相等当相等/为零时重复串操作为零时重复串操作为零时重复串操作为零时重复串操作 REPNE/REPNZ REPNE/REPNZ 当不相等当不相等当不相等当不相等/不为零时重复串操作不为零时重复串操作不为零时重复串操作不为零时重复串
31、操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(一一一一)与与与与REPREP相配合工作的相配合工作的相配合工作的相配合工作的MOVSMOVS、STOSSTOS、LODSLODS指令指令指令指令 REP REP 重复串操作直到(重复串操作直到(重复串操作直到(重复串操作直到(CXCX)=0=0为止为止为止为止 格式:格式:REP String Primitive 串指令串指令 String Primitive 可为:可为:MOVS、STOS、LODS。1.MOVS(Move String)串传送串传送2.LODS(Load from String)从串
32、取指令从串取指令3.STOS(Store into String)存入串指令存入串指令微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所 REP REP 重复串操作执行过程重复串操作执行过程重复串操作执行过程重复串操作执行过程:(1)当当(CX)=0,结束结束REP,执行执行REP后的下一条指令。后的下一条指令。(2)当当(CX)0,(CX)(CX)-1,(3)执行执行REP后的串指令,后的串指令,(4)重复重复(1)(3)。)。REP 执行流程图执行流程图微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所1.1.MOVSMO
33、VS(Move stringMove string)串传送串传送串传送串传送2.2.串传送有串传送有串传送有串传送有3 3种格式:种格式:种格式:种格式:(1)MOVS dest,src;(;(ES):():(DI))(DS)()(SI)(2)MOVSB(字节)字节);(SI)(SI)1,(,(DI)(DI)1(3)MOVSW(字);(字);(SI)(SI)2,(,(DI)(DI)2 当方向标志当方向标志当方向标志当方向标志 CLD ,DF=0CLD ,DF=0时时时时 用用用用“+”+”STD,DF=1 STD,DF=1时时时时 用用用用“-”-”该指令不影响条件码该指令不影响条件码。*MO
34、VMOV单指令不能完成单指令不能完成 存储单元之间的数据传送存储单元之间的数据传送存储单元之间的数据传送存储单元之间的数据传送;MOVSMOVS指令就是为解决指令就是为解决指令就是为解决指令就是为解决 存储单元之间数据传送而设置的。存储单元之间数据传送而设置的。存储单元之间数据传送而设置的。存储单元之间数据传送而设置的。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所例:将内存的数据段中以例:将内存的数据段中以AREA1为首地址的为首地址的100个数据,传个数据,传送到附加段中的送到附加段中的AREA2为首地址的区域。为首地址的区域。用用MOVS串操作指令编
35、程:串操作指令编程:MOV AX,SEG AREA1MOV DS,AX MOV AX,SEG AREA2MOV ES,AX MOV SIMOV SI,OFFSET AREA1OFFSET AREA1 MOV DIMOV DI,OFFSET AREA2OFFSET AREA2 MOV CXMOV CX,100100 CLDCLD;DF=0,增址传送,增址传送 REP MOVS AREA1,AREA2MOVS AREA1,AREA2微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所应用应用应用应用MOVMOV指令编程指令编程指令编程指令编程:MOV AX,SEG
36、AREA1 MOV DS,AX MOV AX,SEG AREA2 MOV ES,AX MOV SIMOV SI,OFFSET AREA1 OFFSET AREA1;将;将;将;将ARE1ARE1偏移地址偏移地址偏移地址偏移地址SISI MOV DI MOV DI,OFFSET AREA2OFFSET AREA2 MOV CX MOV CX,100100LOOP1:MOV ALMOV AL,SISI ;(AL)(DS):():(SI)MOV ESMOV ES:DIDI,ALAL ;(;(ES):():(DI)(AL)INC SI INC DI DEC CX JNE LOOP1微机原理与接口技术微
37、机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所归纳在执行归纳在执行MOVS指令时,应该先做好以下准备工作:指令时,应该先做好以下准备工作:(1)(1)数据段中数据段中源串首地址源串首地址源串首地址源串首地址(或反向传送末地址)(或反向传送末地址)存入存入存入存入SISISISI寄存中寄存中寄存中寄存中。(2)(2)附加段中附加段中目的串首地址目的串首地址目的串首地址目的串首地址(或反向传送末地址)(或反向传送末地址)存入存入存入存入DIDIDIDI寄存中寄存中寄存中寄存中。(3)(3)数据串长度存入数据串长度存入数据串长度存入数据串长度存入CXCXCXCX寄存器寄存器寄存器寄
38、存器。(4)(4)建立方向标志建立方向标志建立方向标志建立方向标志 建立方向标志介绍两条指令:建立方向标志介绍两条指令:建立方向标志介绍两条指令:建立方向标志介绍两条指令:CLDCLD(clear direction flagclear direction flag)功能:功能:DF=0DF=0DF=0DF=0,执行串处理指令时执行串处理指令时 可以使地址可以使地址自动自动自动自动+1+1+1+1或或或或+2+2+2+2。STDSTD(set direction flagset direction flag)功能:功能:DF=1DF=1DF=1DF=1,执行串处理指令时可以使地址执行串处理指令
39、时可以使地址自动自动自动自动-1-1-1-1或或或或 -2-2-2-2。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所2.2.LODS(Load from string)LODS(Load from string)从串取指令从串取指令从串取指令从串取指令从串取指令有从串取指令有从串取指令有从串取指令有3 3种格式:种格式:种格式:种格式:(1)LODS src;(字节)字节)(AL)(DS):(SI),(SI)(SI)1(2)(字(字)(AX)(DS):(SI),(SI)(SI)2(2)LODS B(字节)字节);(AL)(DS):(SI),(SI)(SI
40、)1(3)LODS W(字)字);(AX)(DS):(SI),(SI)(SI)2(4)功能:该指令把由功能:该指令把由(SISI)指定的数据段中某单元内容指定的数据段中某单元内容指定的数据段中某单元内容指定的数据段中某单元内容 (AL)(AL)(5)(5)或或或或 (AX)(AX)中中中中。DF=0,(,(SI)(SI)+1或或+2DF=1,(,(SI)(SI)-1或或-2微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所LODSLODS应用注意:应用注意:应用注意:应用注意:(1)指令允许用段跨越前缀来指定非数据段的存储区。指令允许用段跨越前缀来指定非数据段
41、的存储区。(2)该指令不影响条件码。该指令不影响条件码。(3)一般说来,一般说来,(4)它不与它不与REP联用联用,每重复一次,累加器的内容就改变一次。每重复一次,累加器的内容就改变一次。(AL)中只能保持最后一个元素。中只能保持最后一个元素。有时有时缓冲区中的一串字符需要多次取出测试时可用本指令缓冲区中的一串字符需要多次取出测试时可用本指令缓冲区中的一串字符需要多次取出测试时可用本指令缓冲区中的一串字符需要多次取出测试时可用本指令。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所 3 STOS3 STOS(Store into stringStore in
42、to string)存入串指令存入串指令存入串指令存入串指令将将将将(AL)(AL)或(或(或(或(AX)AX)(ES):(DI)(ES):(DI),(,(,(,(DI)1DI)1或或或或22(DI)(DI)存入串指令有存入串指令有存入串指令有存入串指令有3 3种格式:种格式:种格式:种格式:(1)STOS dest;(字节)字节)(ES):(DI)(AL),(DI)(DI)1(2)(字(字)(ES):(DI)(AX),(DI)(DI)2(3)(2)STOS B(字节)字节);(ES):(DI)(AL),(DI)(DI)1(4)(3)STOS W(字)字);(ES):(DI)(AX),(DI)
43、(DI)2用途:用途:与与REP联用时,(联用时,(CX)缓冲区长度。用来建立一串相同值。缓冲区长度。用来建立一串相同值。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所例:在附加段例:在附加段STORE开始存开始存5个空格个空格程序:程序:MOV AL,20H ;_ (AL)MOV CX,5 MOV DI,OFFSET STORE CLD REP STOSB ;(ES):(DI)(AL)(DI)(DI)+1微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(二二二二)与与与与REPE/REPZREPE/REPZ和和和和RE
44、PNE/REPNZREPNE/REPNZ联合工作的联合工作的联合工作的联合工作的CMPSCMPS和和和和SCASSCAS指令指令指令指令 REPNE/REPNZ REPNE/REPNZ 当不相等当不相等当不相等当不相等/不为零时重复串操作不为零时重复串操作不为零时重复串操作不为零时重复串操作 REPE/REPZ REPE/REPZ 当相等当相等当相等当相等/为零时重复串操作为零时重复串操作为零时重复串操作为零时重复串操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所执行过程:执行过程:(1)当当(CX)=0,结束结束REPZ,(2)执行执行REPZ下一条指
45、令;下一条指令;(2)当当(CX)0,将,将CX 的内容减的内容减1,执行执行REPZ后的串指令;后的串指令;(3)当当ZF=1,返回返回(1);(4)当当ZF1,则结束则结束REPZ 执行执行REPZ下一条指令。下一条指令。注意:注意:注意:注意:(CX)(CX)减减减减1 1操作不影响标志操作不影响标志操作不影响标志操作不影响标志ZFZF标志由串操作决定标志由串操作决定标志由串操作决定标志由串操作决定当当当当 (CX)=0(CX)=0或或或或ZF=0ZF=0时退出循环时退出循环时退出循环时退出循环 REPE/REPZ REPE/REPZ 当相等当相等当相等当相等/为零时重复串操作为零时重复
46、串操作为零时重复串操作为零时重复串操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所执行过程:执行过程:(1)当当(CX)=0,结束结束REPNZ,(2)执行执行REPNZ下一条指令。下一条指令。(2)当当(CX)0,将,将CX 的内容减的内容减1,执行执行REPNZ后的串指令。后的串指令。当当ZF=0,返回返回(1);当当ZF0,则结束则结束REPNZ,(4)执行执行REPNZ下一条指令。下一条指令。注意:注意:(CX)(CX)减减减减1 1操作不影响标志操作不影响标志操作不影响标志操作不影响标志 ZF ZF标志由串操作决定标志由串操作决定标志由串操作决
47、定标志由串操作决定 当当当当 (CX)=0(CX)=0或或或或ZF=1ZF=1时退出循环时退出循环时退出循环时退出循环REPNZ执行流程执行流程 REPNE/REPNZ REPNE/REPNZ 当不相等当不相等当不相等当不相等/不为零时重复串操作不为零时重复串操作不为零时重复串操作不为零时重复串操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所1 1、CM PSCM PS(Compare string )Compare string )串比较指令串比较指令串比较指令串比较指令 (SI)作为源串地址,(作为源串地址,(DI)目的串地址目的串地址串比较指令串比
48、较指令串比较指令串比较指令有有有有3 3种格式:种格式:种格式:种格式:(1)CMPS dest,src;(ES):(DI)-(DS):(SI),结果不存,置标志结果不存,置标志结果不存,置标志结果不存,置标志(2)CMPS B(字节)字节);(SI)(SI)1,(DI)(DI)1(3)CMPS W(字);字);(SI)(SI)2,(DI)(DI)2执行操作:执行操作:(ES):(DI)-(DS):(SI),结果不存,置标志。结果不存,置标志。字节操作:字节操作:(SI)(SI)1,(DI)(DI)1字操作:字操作:(SI)(SI)2,(DI)(DI)2注意:注意:注意:注意:两数相减,只影响
49、标志,不影响操作数。两数相减,只影响标志,不影响操作数。两数相减,只影响标志,不影响操作数。两数相减,只影响标志,不影响操作数。其它操作规定与其它操作规定与其它操作规定与其它操作规定与MOVSMOVS同。同。同。同。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所学习学习REPZ CMPSB指令指令例:利用例:利用CMPS指令对指令对STRING1和和STRING2二个字符串进行二个字符串进行 比较,相同在比较,相同在RESULT 单元送单元送00H,不同送,不同送0FFH。MOV SI,OFFSET STRING1 MOV DI,OFFSET STRING
50、2 MOV CX,COUNT CLD REPZ CMPSB JNZ UNMAT ;若串不同,在;若串不同,在RESUL单元中置单元中置0FFH MOV AL,0 ;若串相等,在;若串相等,在RESULT单元中置单元中置00H JMP OULPT UNMAT:MOV AL,0FFH OUTPTOUTPT:MOV RESULT MOV RESULT,ALAL HLTHLT微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所2 2、SCASSCAS (Scan string )串扫描指令,搜索指令串扫描指令,搜索指令串扫描指令,搜索指令串扫描指令,搜索指令 (DIDI