欢迎来到天天文库
浏览记录
ID:59274092
大小:528.00 KB
页数:63页
时间:2020-09-22
《微机原理课剖析ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章8086/8088指令系统4.1概述计算机语言的分类机器语言汇编语言高级语言一、指令构成:操作码部分:规定指令执行什么样的操作;操作数部分:是指令的操作对象无操作数、单操作数、双操作数。二、操作数的类型操作数是指指令中操作的对象立即数操作数:指令中要操作的数据在指令中寄存器操作数:指令中要操作的数据放在指定的寄存器中存储器操作数:指令中要操作的数据放在指定的存储单元I/O操作数:指令中要操作的数据来自或送到I/O端口。4.2指令的格式、构成4.3操作数寻址方式寻址方式是指CPU在执行指令时寻找操作数的
2、方式。1.立即数寻址2.直接寻址3.寄存器寻址4.寄存器间接寻址5.寄存器相对寻址方式6.基址、变址寻址方式7.基址、变址相对寻址8.隐含寻址一、立即数寻址(ImmediateAddressing)在这种寻址方式中,位于指令操作码后面的操作数部分,不代表操作数所在的地址,而是参加操作的数本身。这种操作数称为立即数,可以是8位、16位。MOVCL,05HMOVAX,3100H立即寻址方式主要用于给寄存器或存储单元赋初值。二、直接寻址(DirectAddressing)在操作码后面直接给出操作数的16位偏移地址
3、。这个偏移地址也称为有效地址(EA)。它与指令操作码一起,存在内存的代码段。MOVAX,[3100H]直接寻址指令的操作数一般在内存的数据段DS隐含,但允许段超越(可以用其他的寄存器进行替换)。MOVAX,ES:[3100H]CSDS三、寄存器寻址(RegisterAddressing)指令中指定某些CPU寄存器存在操作数,寄存器可能是数据寄存器(8位或16位),地址指针或变址寄存器,以及段寄存器。MOVSS,AXMOVDI,SI由于指令执行过程中不必通过访问内存而取得操作数,因此执行速度快。四、寄存器间接
4、寻址(RegisterIndirectAddressing)寄存器间接寻址方式是指令中的操作数存放在存储器中,存储单元的有效地址由寄存器(BX、BP、SI和DI)指出;即有效地址EA等于其中某一寄存器的值,对寄存器指向的存储单元进行数据操作,这些用来存放存储器操作数偏移地址的寄存器称为地址指针。1.BX、SI、DI进行寄存器间接寻址(BX、SI、DI作为地址指针).隐含的段寄存器为数据段寄存器DS,操作数存放在现行数据段中,将数据段寄存器DS的内容左移四位,再加上BX、SI或DI寄存器的内容便可得到操作数的
5、物理地址,MOVAX,[BX];物理地址=DS×l6+BXMOV[DI],DX;物理地址=DS×l6+DI2.BP进行寄存器间接寻址(BP作为地址指针)隐含的段寄存器为堆栈段寄存器SS,操作数存放在堆栈段区域中.MOV[BP],BX;物理地址=SS×l6+BPMOVAX,[BX]DS=2000H,BX=1000HMOV[BP],BXSS=3000HBX=89AAHBP=1000H无论用BX、SI、DI或BP作为间接寻址寄存器,都允许段超越,即也可以使用上面所提到的约定情况以外的其他段寄存器。例如:MOVAX
6、,ES:[BX];物理地址=ES×l6+BXMOVDS:[BP],DX;物理地址=DS×l6+BP五、寄存器相对寻址方式(RegisterRelativeAddressing)操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的8位或16位位移量(Displacement)之和,MOVAX,1000H[DI]MOVBX,COUNT[SI]DS=3000H,SI=2000H;位移量COUNT=4000H则:物理地址=16×DS+SI+COUNT=30000H+2000H+4000H=36000H六、基址
7、、变址寻址方式(BasedIndexedAddressing)操作数的有效地址是一个基址寄存器(BP、BX)和一个变址寄存器(SI、DI)的内容之和,两个寄存器均由指令指定。MOVSI,[BX+DI];物理地址=DS×l6+BX+DIMOVAX,[BX+SI];物理地址=DS×l6+BX+SIMOVAL,[BP+DI];物理地址=SS×l6+BP+DIMOV[BP+SI],AX;物理地址=SS×l6+BP+SI但要注意一点,不允许将两个基址寄存器或两个变址寄存器组合在一起寻址。例如以下指令是非法的:MOVA
8、X,[BX][BP]MOVAX,[SI][DI]MOVAX,[BX+SI];DS=3000H,SI=2000H,BX=3003H物理地址=3000H×10H+EA=30000H+2000H+3003H=35003H七、基址、变址相对寻址(RelativeBasedIndexedAddressing)操作数的有效地址是一个基址寄存器(BP、BX)和一个变址寄存器(SI、DI)的内容之和,再加上指令中指定的8位或16
此文档下载收益归作者所有