微机原理及接口技术第三章-3ppt课件_第1页
微机原理及接口技术第三章-3ppt课件_第2页
微机原理及接口技术第三章-3ppt课件_第3页
微机原理及接口技术第三章-3ppt课件_第4页
微机原理及接口技术第三章-3ppt课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所二、二、8086/80888086/8088的指令系统的指令系统( (续)续)微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所二、二、 8086/8088的指令系统的指令系统(续续)内容内容: 3、逻辑运算和移位指令、逻辑运算和移位指令 (一逻辑运算指令(一逻辑运算指令 (二移位指令(二移位指令 (三循环移位指令(三循环移位指令 4、串操作指令、串操作指令 (一)(一) 与与REP相配合工作的相配合工作的MOVS、STOS、LODS指令指令 (二与(二与REPE/REPZ和和

2、REPNE/REPNZ联合工作的联合工作的CMPS和和 SCAS指令指令微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所AND WORD PTR BXSI, 0FFFEH ; 存储器存储器 立即数立即数微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所留意:留意: “与指令中操作数不能同时为存储器;与指令中操作数不能同时为存储器; 影响条件码:影响条件码: CF0F=0, A未定义未定义 , SF ZF PF “与指令的用途:与指令的用途:(

3、1)清清CF , 本人本人“与本人与本人. 操作数不变操作数不变 ,CF=0 例:例:AND AL ; 结果:操作数不变结果:操作数不变 ,CF=0。 (2) 使操作数中若干位保持不变,若干位与使操作数中若干位保持不变,若干位与“1相与;相与;而若干位置为而若干位置为“0 “的场合,若干位与的场合,若干位与“0” 相与。相与。例:例: 假设假设AL)=43H AND AL, 0FH ; (AL)=03H, (AL)03不变;不变; ;(AL)47=00H,屏蔽高屏蔽高4位。位。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所“与指令应用举例:与指令应用举例:

4、例例1:将英文小写字母:将英文小写字母ASCII转换成大写。转换成大写。小写英文字母小写英文字母ASCII为:为:az 61H7AH大写英文字母大写英文字母ASCII为:为:AZ 41H5AH程序:程序:MOV AL, zAND AL,0DFH;(AL)=5AH例例2:判断键盘按下的字符是不是:判断键盘按下的字符是不是Y?MOV AH, 7INT 21H ;键入无回显,(键入无回显,(AL)=输入键的字符码输入键的字符码AND AL, 0DFHCMP AL, YJE YES YES: 0110 00010100 00011101 111161H41HDFH微机原理与接口技术微机原理与接口技术信

5、息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所用途:用途:常常用来检测一些条件是否满足,但又不希望改变原有常常用来检测一些条件是否满足,但又不希望改变原有的操作数的情况下,常在此指令后边加一条的操作数的情况下,常在此指令后边加一条 条件转移指令。条件转移指令。例:判断例:判断A单元中数据的奇偶性单元中数据的奇偶性设:设: (A )= 0AEH程序:程序:MOV AL,A;(AL)=0AEH TEST AL,01H JZ EVEN ; 结果结果=0为偶数转为偶数转EVEN 奇数处理奇数处理 EVEN:偶数处理:偶

6、数处理检测检测AL的最低位是否为的最低位是否为0,若为,若为0转转EVEN微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所OR BYTE PTR MEM_BYTE , 80H;存储器;存储器立即数立即数微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所留意:留意: “或指令中操作数不能同时为存储器;或指令中操作数不能同时为存储器; 影响条件码:影响条件码: CF0F=0, A未定义未定义 , SF ZF PF 用途:用途:(1清清CF , 自己与自己自己与自己“或或”,操作数不变,操作数不变,CF=0 例:例: OR AL

7、;(;(AL不变,不变,CF=0(2使某个操作数若干位保持不变,若干位与使某个操作数若干位保持不变,若干位与“0或或 ;而若干位置而若干位置1。若干位与。若干位与“1或或 。 (3) 将两个操作数信息组合。将两个操作数信息组合。 假设假设AL)=03H 用用OR指令组合使指令组合使AL)=33H=3 。 OR AL,30H ;(;(AL)=33H 微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所留意:留意: “或指令中操作数不能同时为存储器;或指令中操作数不能同时为存储器;

8、影响条件码:影响条件码: CF0F=0, A未定义未定义 , SF ZF PF 用途:对某些特定位求反,某些特定位与用途:对某些特定位求反,某些特定位与“1” 其余位保持不变,保持不变与其余位保持不变,保持不变与“0” 。应用举例:应用举例:例例1: 将将AL)中的第中的第1、3、5、7位求反位求反 0、2、4、6位保持不变。位保持不变。MOV AL, 0FHXOR AL,0AAH微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所例例2:比较三条比较三条AX)清清“0指令:指令: XOR AX , AX ; 清清AX , 清清CF,2个字节,个字节,3个个T。

9、 SUB AX, AX ;清清AX , 清清CF,2个字节,个字节,3个个T。 MOV AX , 0 ;清清AX ,不影响标志位,不影响标志位, 3个字节,个字节,4个个T。 微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所器求反器求反微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所综合举例:综合举例:1使某些位置使某些位置“0”。 IN AL,61H;(;(AL)= B 设备控制寄存器设备控制寄存器 想使此位为想使此位为0执行指令:执行指令: AND AL,0FDH 即可。即可。2. 使某些位置使某些位置“1”。 IN

10、AL,61H;(;(AL)= 执行指令:执行指令: OR AL,02 想使此位为想使此位为“1”3. 使某些位求反:使某些位求反:IN AL,61H ;(;(AL)= 0 XOR AL,02H 0 0 0 0 0 0 1 0 1 4. 测试某些位测奇偶性):测试某些位测奇偶性):测试测试 “奇奇”“”“偶性。偶性。 见见TEST指令的用途例子。指令的用途例子。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所共同点:共同点: 所有移位指令都可以作所有移位指令都可以作B/W操作。

11、操作。 指令中的指令中的 dest : 寄存器、存储器寻址方式。寄存器、存储器寻址方式。 cnt : 表示移位次数表示移位次数 cnt=1,1可写在指令中,不能是可写在指令中,不能是1以外的常数。以外的常数。 cnt1,用,用CL存放移位次数存放移位次数 ,不能是其他不能是其他寄存器。寄存器。 如:如: SAL AX,1 MOV CL,4 SAL AX,CL 利用移位指令编制利用移位指令编制 *, / 程序,程序, 执行时间比直接用执行时间比直接用 * , / 指令快,指令快, 速度可提高速度可提高5-6倍。倍。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究

12、所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所执行操作:相当于无符号数的执行操作:相当于无符号数的2功能。功能。 SHL/SAL指令操作示意图如下图所示:指令操作示意图如下图所示:指令格式举例:指令格式举例: SHL AH,1 SAL SI, CL SAL WORD PTR BX+5 ,1 SHL BYTE PTR , CL0CFdest微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(2)、)、SHR (Shift logical right )逻辑右移指令逻辑右移指令格式:格式: SHR dest ,cnt ;逻辑

13、右移指令;逻辑右移指令, B/W执行操作:相当于无符号数的执行操作:相当于无符号数的2功能。功能。 SHR指令操作示意图如下图所示:指令操作示意图如下图所示:dest : 寄存器、存储器寻址方式。寄存器、存储器寻址方式。指令格式举例:指令格式举例:SHR BL , 1SHR AX , CLSHR BYTE PTR DI+BP,1SHR WORD PTR BLOCK ,CLdestCF0微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所dsetdest : 寄存器、存储器寻址方式。寄存器、存储器寻址方式。指令格式举例:指令格式举例:SAR AL , 1SHR D

14、L , CLSHR WORD PTR TABLESI,1SHR BYTE PTR STATUS ,CLCF微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所CFdest指令格式举例:指令格式举例:ROL BH , 1ROL DX , CLROL WORD PTR TABLEDI,1ROL BYTE PTR ALPHA ,CL微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所CFdest指令格式举例:指令格式举例:ROR CX , 1ROL BH

15、 , CLROL BYTE PTRBETA , 1ROL WORD PTR COUNT , CL微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所CFdest指令格式举例:指令格式举例:RCL BX , 1RCL DL , CLRCL BYTE PTR ARRAYDI , 1RCL WORD PTR SI+BP , CL影响标志:影响标志:RCL 与与ROL 影响标志影响标志OF、CF情况相同情况相同微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所CFdest指令格式举例:指令格式举例:RCR DI, 1RCR SI , C

16、LRCR WORD PTRSI+BX+3, 1RCL BYTE PTRPORT, CL影响标志:影响标志:RCR 与与 ROR 影响标志影响标志OF、CF情况相同情况相同微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所4、串操作指令、串操作指令String manipulation ) “串就是内存中一段地址相连的字节或字。串就是内存中一段地址相连的字节或字。 串操作串操作对串中各项进行操作,也叫数据块操对串中各项进行操作,也叫数据块操作。作。 8086有有5种基本操作:种基

17、本操作: (1) MOVSMove string) 串传送指串传送指令令 (2CMPSCompare string) 串比较指串比较指令令 (3) SCASScan string) 串扫描指串扫描指令令 (4LODSLoad from string) 从串取指从串取指令令 (5STOS (Store in to string) 存入串指令存入串指令微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所REPRepeat反复。反复。REPE/REPZRepeat while equal/zero)相等相等/为零为零则重复。则重复。REPNE/REPNZRepeat

18、while not equal/not zero不不相等相等/不为零则重复。不为零则重复。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所下面分二种情况来讨论:下面分二种情况来讨论:(一一) 与与REP相配合工作的相配合工作的MOVS、STOS、LODS指令指令 REP 重复串操作直到重复串操作直到CX)=0为止为止(二二) 与与REPE/REPZ和和REPNE/REPNZ联合工作联合工作的的CMPS和和SCAS 指令指令 REPE/REPZ 当相等当相等/为零时重复串操作为零时重复串操作 REPNE/REPNZ 当不相等当不相等/不为零时重复串不为零时重复

19、串操作操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所 REP 重复串操作执行过程重复串操作执行过程: (1)当当(CX)= 0 ,结束,结束REP, 执行执行REP后的下一条指令。后的下一条指令。 (2) 当当(CX)0, (CX) (CX) -1 , (3) 执行执行REP后的串指令,后的串指令, (4) 反复反复(1)(3)。)。REP 执行流程图执行流程图( (C CX)X)=0?=0?Y Y(CX) (CX)-1(CX) (CX)-1执行下一条指令执行下一条指令

20、执行REP后的串执行REP后的串指令指令N N微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所例:将内存的数据段中以例:将内存的数据段中以AREA1为首地址的为首地址的100个数据,个数据,传送到附加段中的传送到附加段中的AREA2为首地址的区域。为首地址的区域。用用MOVS串操作指令编程:串操作指令编程: MOV AX,SEG AREA1MOV DS,AX MOV AX,SEG AREA2MOV ES,AX MOV SI,OFFSET AREA1 MOV DI,OFFSET

21、 AREA2 MOV CX,100 CLD; DF=0,增址传送,增址传送 REP MOVS AREA1, AREA2微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所(AL)INC SI INC DI DEC CX JNE LOOP1微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所归纳在执行归纳在执行MOVSMOVS指令时,应该先做好以下准备工作:指令时,应该先做好以下准备工作:(1) (1) 数据段中源串首地址或反向传送末地址存入数据段中源串首地址或反向传送末地址存入SISI寄寄存中。存中。(2) (2) 附加段中目的串

22、首地址或反向传送末地址存入附加段中目的串首地址或反向传送末地址存入DIDI寄存中。寄存中。(3) (3) 数据串长度存入数据串长度存入CXCX寄存器。寄存器。(4) (4) 建立方向标志建立方向标志 建立方向标志介绍两条指令:建立方向标志介绍两条指令: CLDCLDclear direction flagclear direction flag) 功能:功能:DF=0DF=0,执行串处理指令时,执行串处理指令时 可以使地址自动可以使地址自动+1+1或或+2+2。 STDSTDset direction flagset direction flag)功能:功能:DF=1DF=1,执行串处理指令时

23、可以使地址自动,执行串处理指令时可以使地址自动-1-1或或 -2-2。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所 3 STOSStore into string) 存入串指令存入串指令将将(AL)或或AX) (ES):(DI),(,(DI) 1或或2(DI)存入串指令有存入串指令有3种格式:种格式:STOS dest;(字节)(字节) (ES):(DI) (AL) , (DI) (DI)

24、 1 (字(字) (ES):(DI) (AX) , (DI) (DI) 2(2) STOS B (字节)(字节); (ES):(DI) (AL) , (DI) (DI) 1(3) STOS W (字)(字) ; (ES):(DI) (AX) , (DI) (DI) 2用途:用途:与与REP联用时,(联用时,(CX)缓冲区长度。用来建立一串相同值。缓冲区长度。用来建立一串相同值。微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所例:在附加段例:在附加段STORE开始存开始存5个空格个空格程序:程序: MOV AL,20H ;_ (AL) MOV CX,5 MOV

25、 DI,OFFSET STORE CLD REP STOSB ;(ES):(DI) (AL) (DI) (DI)+120H20H20H20H20H20H20H20H20H20H.STORE:STORE:微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所 REPNE/REPNZ 当不相等/不为零时重复串操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所执行过程:执行过程:当当(CX)= 0 , 结束结束REPZ, 执行执行REPZ下一条指令;下一条指令;(2) 当当(CX)0,将,将CX 的内容减的内容减1,执行执行REPZ

26、后的串指令;后的串指令;(3) 当当ZF = 1, 前往前往 (1) ;(4) 当当ZF1, 则结束则结束REPZ 执行执行REPZ下一条指令。下一条指令。留意:留意: (CX)减减1操作不影响标志操作不影响标志 ZF标志由串操作决定标志由串操作决定 当当 (CX) = 0或或ZF=0时退出循环时退出循环( (C CX)X)=0?=0?Y Y(CX) (CX)-1(CX) (CX)-1执行下一条指令执行下一条指令执行REZ后的串执行REZ后的串指令指令N NZF=1?ZF=1?N NY Y微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所执行过程:执行过程:当

27、当(CX )= 0 , 结束结束REPNZ, 执行执行REPNZ下一条指下一条指令。令。(2) 当当(CX)0,将,将CX 的的内容减内容减1, 执行执行REPNZ后的串指令。后的串指令。 当当ZF = 0, 前往前往(1); 当当ZF0, 则结束则结束REPNZ, (4) 执行执行REPNZ下一条下一条指令。指令。留意:留意: (CX)减减1操作不影响操作不影响标志标志 ZF标志由串操作决定标志由串操作决定 当当 (CX) = 0或或ZF=1时退出循环时退出循环REPNZ执行流程执行流程( (C CX)X)=0?=0?Y Y(CX) (CX)-1(CX) (CX)-1执行下一条指令执行下一条

28、指令执行RENZ后的串执行RENZ后的串指令指令N NZF=0?ZF=0?N NY Y REPNE/REPNZ 当不相等当不相等/不为零时重复串操作不为零时重复串操作微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所微机原理与接口技术微机原理与接口技术信息学院自动化仪表研究所信息学院自动化仪表研究所学习学习REPZ CMPSB指令指令例:利用例:利用CMPS指令对指令对STRING1和和STRING2二个字二个字符串进行符串进行 比较,相同在比较,相同在RESULT 单元送单元送00H,不同,不同送送0FFH。MOV SI,OFFSET STRING1 MOV DI,OFFSET STRING2 MOV CX,COUNT CLD REPZ CMPSB JNZ UNMAT ;若串不同,在;若串不同,在RESUL单元中单元中置置0FFH MOV AL,0 ;若串相等,在;若串相等,在RESUL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论