最新微型计算机原理及应用(第三版)第5章(1)PPT课件.ppt
微型计算机原理及应用微型计算机原理及应用(第三版第三版)第第5章章(1)5.1 5.1 8686系列汇编语言及指令的格式与寻址方式系列汇编语言及指令的格式与寻址方式指令:指令:指令:指令:让计算机完成某种操作的命令。让计算机完成某种操作的命令。让计算机完成某种操作的命令。让计算机完成某种操作的命令。机器指令:机器指令:机器指令:机器指令:指令的二进制代码形式。指令的二进制代码形式。指令的二进制代码形式。指令的二进制代码形式。0011 1101 1010 11010011 1101 1010 11010011 1101 1010 11010011 1101 1010 1101汇编指令:汇编指令:汇编指令:汇编指令:助记符形式的指令。例如:助记符形式的指令。例如:助记符形式的指令。例如:助记符形式的指令。例如:INT 21HINT 21HINT 21HINT 21H指指指指令令令令系系系系统统统统:微微微微处处处处理理理理器器器器(CPUCPUCPUCPU)所所所所能能能能执执执执行行行行的的的的指指指指令令令令的的的的集集集集合合合合。不不不不同同同同的微处理器有不同的指令系统的微处理器有不同的指令系统的微处理器有不同的指令系统的微处理器有不同的指令系统,8086808680868086CPUCPUCPUCPU包含包含包含包含133133133133条指令。条指令。条指令。条指令。在本章中我们主要讲解在本章中我们主要讲解在本章中我们主要讲解在本章中我们主要讲解INTELINTELINTELINTEL公司生产的公司生产的公司生产的公司生产的8086/8088 CPU8086/8088 CPU8086/8088 CPU8086/8088 CPU的寻址方式以及各种指令系统,并通过具体实例讲述了各条的寻址方式以及各种指令系统,并通过具体实例讲述了各条的寻址方式以及各种指令系统,并通过具体实例讲述了各条的寻址方式以及各种指令系统,并通过具体实例讲述了各条指令的功能和使用方法。指令的功能和使用方法。指令的功能和使用方法。指令的功能和使用方法。例:例:例:例:MOV AXMOV AX,SISI DS=6000H,DS=6000H,SI=1200H,61200H=44H,61201H=33HSI=1200H,61200H=44H,61201H=33H44H33H60001200DSSI6000061200 61200HAX存储器存储器数据段+)120044H33H寄存器相对寻址寄存器相对寻址寄存器相对寻址寄存器相对寻址 指令中寄存器内容与指令指定的位移量之和作为操作数所指令中寄存器内容与指令指定的位移量之和作为操作数所指令中寄存器内容与指令指定的位移量之和作为操作数所指令中寄存器内容与指令指定的位移量之和作为操作数所在单元的有效地址。在单元的有效地址。在单元的有效地址。在单元的有效地址。带位移量的寄存器间接寻址。带位移量的寄存器间接寻址。带位移量的寄存器间接寻址。带位移量的寄存器间接寻址。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;默认段寄存器为默认段寄存器为默认段寄存器为默认段寄存器为DSDS MOV AX,BP+1000H;MOV AX,BP+1000H;默认段寄存器为默认段寄存器为默认段寄存器为默认段寄存器为SSSS例:例:例:例:MOV AXMOV AX,BX+2A00HBX+2A00H 若若若若DS=6000H,BX=1000H,63A00H=66H,63A01H=55HDS=6000H,BX=1000H,63A00H=66H,63A01H=55H 则物理地址则物理地址则物理地址则物理地址 =60000H+1000H+2A00H=63A00H=60000H+1000H+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基址加变址的寻址基址加变址的寻址基址加变址的寻址基址加变址的寻址若操作数的偏移地址:若操作数的偏移地址:若操作数的偏移地址:若操作数的偏移地址:由由由由基址寄存器基址寄存器基址寄存器基址寄存器(BX(BX(BX(BX或或或或BP)BP)BP)BP)给出给出给出给出 基址寻址方式基址寻址方式基址寻址方式基址寻址方式由由由由变址寄存器变址寄存器变址寄存器变址寄存器(SI(SI(SI(SI或或或或DI)DI)DI)DI)给出给出给出给出 变址寻址方式变址寻址方式变址寻址方式变址寻址方式 由一个基址寄存器由一个基址寄存器由一个基址寄存器由一个基址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内容和一个变址寄存器的内容相加的内容相加的内容相加的内容相加而形成操作数的偏移地址,而形成操作数的偏移地址,而形成操作数的偏移地址,而形成操作数的偏移地址,称为称为称为称为基址基址基址基址变址寻址变址寻址变址寻址变址寻址。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的寻址方式的寻址方式 83000操作码操作码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+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.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 使用相对的基址加变址寻址方式可以很方便地访问堆栈中使用相对的基址加变址寻址方式可以很方便地访问堆栈中的数组的数组。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的寻址方式的寻址方式总结:总结:寄存器间接、寄存器相对、基址寄存器间接、寄存器相对、基址寄存器间接、寄存器相对、基址寄存器间接、寄存器相对、基址-变址、相对基址变变址、相对基址变变址、相对基址变变址、相对基址变址四种寻址方式的比较:址四种寻址方式的比较:址四种寻址方式的比较:址四种寻址方式的比较:寻址方式寻址方式寻址方式寻址方式 指令操作数形式指令操作数形式指令操作数形式指令操作数形式 寄存器间接寄存器间接寄存器间接寄存器间接 只有一个寄存器(只有一个寄存器(只有一个寄存器(只有一个寄存器(BX/BP/SI/DIBX/BP/SI/DI之一)之一)之一)之一)寄存器相对寄存器相对寄存器相对寄存器相对 一个寄存器加上位移量一个寄存器加上位移量一个寄存器加上位移量一个寄存器加上位移量 基址基址基址基址变址变址变址变址 两个不同类别的寄存器两个不同类别的寄存器两个不同类别的寄存器两个不同类别的寄存器 相对基址相对基址相对基址相对基址-变址变址变址变址 两个不同类别的寄存器加上位移量两个不同类别的寄存器加上位移量两个不同类别的寄存器加上位移量两个不同类别的寄存器加上位移量5.1.2 5.1.2 8686系列系列CPUCPU的寻址方式的寻址方式结束语结束语谢谢大家聆听!谢谢大家聆听!21