微型计算机原理及应用第三版第5章

上传人:新** 文档编号:592514117 上传时间:2024-09-21 格式:PPT 页数:20 大小:111KB
返回 下载 相关 举报
微型计算机原理及应用第三版第5章_第1页
第1页 / 共20页
微型计算机原理及应用第三版第5章_第2页
第2页 / 共20页
微型计算机原理及应用第三版第5章_第3页
第3页 / 共20页
微型计算机原理及应用第三版第5章_第4页
第4页 / 共20页
微型计算机原理及应用第三版第5章_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微型计算机原理及应用第三版第5章》由会员分享,可在线阅读,更多相关《微型计算机原理及应用第三版第5章(20页珍藏版)》请在金锄头文库上搜索。

1、5. 86系列微型计算机的指令系统5.1 865.1 865.1 865.1 86系列汇编语言及指令的格式与寻址方式系列汇编语言及指令的格式与寻址方式系列汇编语言及指令的格式与寻址方式系列汇编语言及指令的格式与寻址方式5.2 5.2 5.2 5.2 传送类指令传送类指令传送类指令传送类指令5.3 5.3 5.3 5.3 数据操作类指令数据操作类指令数据操作类指令数据操作类指令5.4 5.4 5.4 5.4 串操作指令串操作指令串操作指令串操作指令5.5 5.5 5.5 5.5 控制类指令控制类指令控制类指令控制类指令5.1 5.1 8686系列汇编语言及指令的格式与寻址方式系列汇编语言及指令的

2、格式与寻址方式指令:指令:指令:指令:让计算机完成某种操作的命令。让计算机完成某种操作的命令。让计算机完成某种操作的命令。让计算机完成某种操作的命令。机器指令:机器指令:机器指令:机器指令:指令的二进制代码形式。指令的二进制代码形式。指令的二进制代码形式。指令的二进制代码形式。0011 1101 1010 11010011 1101 1010 11010011 1101 1010 11010011 1101 1010 1101汇编指令:汇编指令:汇编指令:汇编指令:助记符形式的指令。例如:助记符形式的指令。例如:助记符形式的指令。例如:助记符形式的指令。例如:INT 21HINT 21HINT

3、 21HINT 21H指指指指令令令令系系系系统统统统:微微微微处处处处理理理理器器器器(CPUCPUCPUCPU)所所所所能能能能执执执执行行行行的的的的指指指指令令令令的的的的集集集集合合合合。不不不不同同同同的微处理器有不同的指令系统的微处理器有不同的指令系统的微处理器有不同的指令系统的微处理器有不同的指令系统,8086808680868086CPUCPUCPUCPU包含包含包含包含133133133133条指令。条指令。条指令。条指令。 在本章中我们主要讲解在本章中我们主要讲解在本章中我们主要讲解在本章中我们主要讲解INTELINTELINTELINTEL公司生产的公司生产的公司生产的

4、公司生产的8086/8088 CPU8086/8088 CPU8086/8088 CPU8086/8088 CPU的寻址方式以及各种指令系统,并通过具体实例讲述了各条的寻址方式以及各种指令系统,并通过具体实例讲述了各条的寻址方式以及各种指令系统,并通过具体实例讲述了各条的寻址方式以及各种指令系统,并通过具体实例讲述了各条指令的功能和使用方法。指令的功能和使用方法。指令的功能和使用方法。指令的功能和使用方法。5.1.1 5.1.1 8686系列汇编语言指令语句格式系列汇编语言指令语句格式例:例: 11:MOV AXMOV AX,CX ; CX ; 将将将将CXCX的内容送入的内容送入的内容送入的

5、内容送入AXAX中中中中说明说明要执要执行的是什行的是什么操作么操作指令运算的数据,指令运算的数据,可以有可以有0 0个、个、1 1个或个或2 2个个目的目的源源指令地指令地址的名址的名字,可字,可缺省缺省对指令功对指令功能加以说能加以说明,可缺明,可缺省省INC INC CX ; CX CX ; CX计数器加计数器加计数器加计数器加1 1HLT ; HLT ; 停机停机停机停机 5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式1. 1. 1. 1. 立即数寻址立即数寻址立即数寻址立即数寻址 此寻址方式中,指令所需的操作数就在指令中提供,操作数此寻址方式中,指令所需的操

6、作数就在指令中提供,操作数此寻址方式中,指令所需的操作数就在指令中提供,操作数此寻址方式中,指令所需的操作数就在指令中提供,操作数存在代码段中,不需要运行总线周期,从而具有速度快的特点。存在代码段中,不需要运行总线周期,从而具有速度快的特点。存在代码段中,不需要运行总线周期,从而具有速度快的特点。存在代码段中,不需要运行总线周期,从而具有速度快的特点。立即数立即数立即数立即数用于表示常数,给变量赋初值。用于表示常数,给变量赋初值。用于表示常数,给变量赋初值。用于表示常数,给变量赋初值。立即数可以是立即数可以是立即数可以是立即数可以是8 8 8 8位或位或位或位或16161616位。位。位。位。

7、立即数(常数)立即数(常数)立即数(常数)立即数(常数)取值范围取值范围取值范围取值范围8 8位位位位1616位位位位无符号数无符号数无符号数无符号数00H-FFH(0-255)00H-FFH(0-255)0000H-FFFFH(0-65535)0000H-FFFFH(0-65535)带符号数带符号数带符号数带符号数 80H-7FH(-128127)80H-7FH(-128127)8000H-7FFFH(-3276832767)8000H-7FFFH(-3276832767)例例 :MOV AL, 80H ;将将16进制数进制数80H送入送入AL寄存器。寄存器。MOV AX,1090H ;将将

8、1090H存入存入AX寄存器,寄存器,AH中为中为10H, ;AL中为中为90H。MOVMOV 8000H 8000H,DXDXMOV AXMOV AX,12.34H12.34H立即数只能是整数,不能是小数、变量或者其它类型的数据。立即数只能是整数,不能是小数、变量或者其它类型的数据。立即数只能是整数,不能是小数、变量或者其它类型的数据。立即数只能是整数,不能是小数、变量或者其它类型的数据。立即数只能作为源操作数。立即数只能作为源操作数。立即数只能作为源操作数。立即数只能作为源操作数。5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式 2. 2. 寄存器寻址寄存器寻址寄存

9、器寻址寄存器寻址 操作数在操作数在操作数在操作数在CPUCPU的内部寄存器中,的内部寄存器中,的内部寄存器中,的内部寄存器中,指令指定寄存器的内容指令指定寄存器的内容指令指定寄存器的内容指令指定寄存器的内容为操作数。为操作数。为操作数。为操作数。 可使用的可使用的可使用的可使用的1616位寄存器:位寄存器:位寄存器:位寄存器:AXAX、BXBX、CXCX、DXDX、SISI、DIDI、SPSP、BPBP;其中;其中;其中;其中AXAX、BXBX、CXCX、DXDX可分成两个可分成两个可分成两个可分成两个8 8位使用。位使用。位使用。位使用。例:例:例:例:MOV AXMOV AX,BX ; B

10、X ; 将将将将BXBX中的内容送入中的内容送入中的内容送入中的内容送入AXAX中中中中 INC INC CX ; CX ; 将将将将CXCX中的内容加中的内容加中的内容加中的内容加1 1 ROL AH ROL AH,1 ; 1 ; 将将将将AHAH中的内容循环左移一位中的内容循环左移一位中的内容循环左移一位中的内容循环左移一位寄存器寻址与段地址无关!寄存器寻址与段地址无关!5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式内存寻址方式内存寻址方式内存寻址方式内存寻址方式 在内存寻址方式中,操作数是某个内存单元的内容,指令在内存寻址方式中,操作数是某个内存单元的内容,指令

11、在内存寻址方式中,操作数是某个内存单元的内容,指令在内存寻址方式中,操作数是某个内存单元的内容,指令中给出的是内存单元的中给出的是内存单元的中给出的是内存单元的中给出的是内存单元的有效地址有效地址有效地址有效地址EAEA(偏移地址),(偏移地址),(偏移地址),(偏移地址),段地址通段地址通段地址通段地址通常在隐含的某个段寄存器中。常在隐含的某个段寄存器中。常在隐含的某个段寄存器中。常在隐含的某个段寄存器中。3. 直接寻址方式直接寻址方式 在直接寻址方式中,操作数的有效地址由指令直接指出。在直接寻址方式中,操作数的有效地址由指令直接指出。默认的段寄存器为默认的段寄存器为DS 。例:例: MOV

12、 AX,1070H ; 将将DS段的段的1070H和和1071H两个单元两个单元 ; 的内容送入的内容送入AX中。中。5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式 对其它段寄存器进行直接寻址时,必须在指令前指出段寄对其它段寄存器进行直接寻址时,必须在指令前指出段寄对其它段寄存器进行直接寻址时,必须在指令前指出段寄对其它段寄存器进行直接寻址时,必须在指令前指出段寄存器名。存器名。存器名。存器名。例:例:例:例:CS: MOV BXCS: MOV BX,3000H ; 3000H ; 将将将将CSCS段中的段中的段中的段中的3000H3000H和和和和3001H3001

13、H两两两两个个个个 ; ; 单元中的内容送入单元中的内容送入单元中的内容送入单元中的内容送入BXBX。4. 寄存器间接寻址寄存器间接寻址 操作数的有效地址由寄存器指出。寄存器要用方括号括起操作数的有效地址由寄存器指出。寄存器要用方括号括起来,表示寄存器中的内容,以便与寄存器操作数相区别。来,表示寄存器中的内容,以便与寄存器操作数相区别。 BX SI DI BP有效地址有效地址 = 段寄存器为段寄存器为DS段寄存器为段寄存器为SS5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式例:例:例:例: MOV AXMOV AX,SISI DS=6000H, DS=6000H, S

14、I=1200H, 61200H=44H, SI=1200H, 61200H=44H, 61201H=33H61201H=33H44H33H60001200DSSI6000061200 61200HAX存储器存储器数据段 +) 120044H33H寄存器相对寻址寄存器相对寻址寄存器相对寻址寄存器相对寻址 指令中寄存器内容与指令指定的位移量之和作为操作数所指令中寄存器内容与指令指定的位移量之和作为操作数所指令中寄存器内容与指令指定的位移量之和作为操作数所指令中寄存器内容与指令指定的位移量之和作为操作数所在单元的有效地址。在单元的有效地址。在单元的有效地址。在单元的有效地址。带位移量的寄存器间接寻址

15、。带位移量的寄存器间接寻址。带位移量的寄存器间接寻址。带位移量的寄存器间接寻址。 BXBX 8 8位位移量位位移量位位移量位位移量 SI SI DIDI BPBP 1616位位移量位位移量位位移量位位移量有效地址有效地址 = 段寄存器为段寄存器为DS段寄存器为段寄存器为SS+ 常用于存取表格中的元素常用于存取表格中的元素,把表格的起始地址作为位移量,把表格的起始地址作为位移量,元素的下标值放在间址寄存器中元素的下标值放在间址寄存器中。5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式例:例:例:例: MOV AX, BX+0080H ; MOV AX, BX+0080H

16、; 默认段寄存器为默认段寄存器为默认段寄存器为默认段寄存器为DSDS MOV AX, BP+1000H ; MOV AX, BP+1000H ; 默认段寄存器为默认段寄存器为默认段寄存器为默认段寄存器为SSSS例:例:例:例:MOV AXMOV AX,BX+2A00HBX+2A00H 若若若若DS=6000H, BX=1000H, 63A00H=66H, DS=6000H, BX=1000H, 63A00H=66H, 63A01H=55H63A01H=55H 则物理地址则物理地址则物理地址则物理地址 = 60000H + 1000H + 2A00H = 63A00H= 60000H + 100

17、0H + 2A00H = 63A00H 指令执行后指令执行后指令执行后指令执行后:AX=5566HAX=5566H (见下页图示)(见下页图示)(见下页图示)(见下页图示) 5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式操作码操作码00 偏移量低2A 偏移量高DS 60000BX 1000 + 2A0063A0063A00HAHALAX代码段数据段.66H55HMOV AXMOV AX,BX+2A00HBX+2A00H基址加变址的寻址基址加变址的寻址基址加变址的寻址基址加变址的寻址若操作数的偏移地址:若操作数的偏移地址:若操作数的偏移地址:若操作数的偏移地址:由由由由

18、基址寄存器基址寄存器基址寄存器基址寄存器(BX(BX(BX(BX或或或或BP)BP)BP)BP)给出给出给出给出 基址寻址方式基址寻址方式基址寻址方式基址寻址方式由由由由变址寄存器变址寄存器变址寄存器变址寄存器(SI(SI(SI(SI或或或或DI)DI)DI)DI)给出给出给出给出 变址寻址方式变址寻址方式变址寻址方式变址寻址方式 由一个基址寄存器由一个基址寄存器由一个基址寄存器由一个基址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内容相加的内容相加的内容相加的内容相加而形成操作数的偏移地址,而形成操作数的偏移地址,而形成操作数的偏移地址,而

19、形成操作数的偏移地址,称为称为称为称为基址基址基址基址变址寻址变址寻址变址寻址变址寻址。EA = EA = BXBXBPBP+ + SISIDIDI同一组内的寄存器不能同时出现同一组内的寄存器不能同时出现同一组内的寄存器不能同时出现同一组内的寄存器不能同时出现 ! !5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式例:例:例:例: MOV AX, BX+SIMOV AX, BX+SI MOV AX, BX+BP MOV AX, BX+BP MOV AX, DI+SI MOV AX, DI+SI 5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式 8

20、3000操作码操作码D S 80000B X 2000 + SI 100083000HAHALAX代码段数据段.12H34H例:例:例:例:MOV AXMOV AX,BX+SIBX+SI 假定:假定:假定:假定:DS=8000H, BX=2000H, SI=1000HDS=8000H, BX=2000H, SI=1000H 则物理地址则物理地址则物理地址则物理地址 = 80000H + 2000H + 1000H = 83000H= 80000H + 2000H + 1000H = 83000H= 80000H + 2000H + 1000H = 83000H= 80000H + 2000H

21、+ 1000H = 83000H 指令执行后指令执行后指令执行后指令执行后: : : : AL AL AL AL = = = = 83000H83000H83000H83000H AH AH AH AH = = = = 83001H83001H83001H83001H 相对的基址加变址寻址相对的基址加变址寻址相对的基址加变址寻址相对的基址加变址寻址l 在在基址基址加加变址寻址的基础上再加上一个相对位变址寻址的基础上再加上一个相对位移量移量l 注意事项同注意事项同基址基址加加变址寻址变址寻址EA = BXBP+ SIDI+ 8位位移量16位位移量例:例:MOV AX,BX+SI+0050H5.1

22、.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式例:例:例:例:MOV AXMOV AX, BX + DI + 0200H BX + DI + 0200H 若若若若DS=8000H, BX=2000H, DI=1000HDS=8000H, BX=2000H, DI=1000H 则指令执行后则指令执行后则指令执行后则指令执行后AL=83020HAL=83020H,AH=83021HAH=83021H。8320083200HAHALAX+ 0200操作码操作码代码段数据段.12H34HD S 80000BX 2000 DI 1000 使用相对的基址加变址寻址方式可以很方便地访问堆

23、栈中使用相对的基址加变址寻址方式可以很方便地访问堆栈中的数组的数组。5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式A(0).A(n-1)A(n)A(1)A(2)BP(栈顶地址)(栈顶地址)位移量位移量低地址低地址高地址高地址SI寻址方式可分为寻址方式可分为立即数寻址立即数寻址直接寻址直接寻址寄存器相对寻址寄存器相对寻址寄存器寻址寄存器寻址基址基址-变址寻址变址寻址基址基址-变址相对寻址变址相对寻址寄存器间接寻址寄存器间接寻址5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式总结:总结: 寄存器间接、寄存器相对、基址寄存器间接、寄存器相对、基址寄存

24、器间接、寄存器相对、基址寄存器间接、寄存器相对、基址-变址、相对基址变变址、相对基址变变址、相对基址变变址、相对基址变址四种寻址方式的比较:址四种寻址方式的比较:址四种寻址方式的比较:址四种寻址方式的比较: 寻址方式寻址方式寻址方式寻址方式 指令操作数形式指令操作数形式指令操作数形式指令操作数形式 寄存器间接寄存器间接寄存器间接寄存器间接 只有一个寄存器(只有一个寄存器(只有一个寄存器(只有一个寄存器(BX/BP/SI/DIBX/BP/SI/DI之一)之一)之一)之一) 寄存器相对寄存器相对寄存器相对寄存器相对 一个寄存器加上位移量一个寄存器加上位移量一个寄存器加上位移量一个寄存器加上位移量 基址基址基址基址变址变址变址变址 两个不同类别的寄存器两个不同类别的寄存器两个不同类别的寄存器两个不同类别的寄存器 相对基址相对基址相对基址相对基址- -变址变址变址变址 两个不同类别的寄存器加上位移量两个不同类别的寄存器加上位移量两个不同类别的寄存器加上位移量两个不同类别的寄存器加上位移量5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号