2.2.2 寄存器寻址方式
这种寻址方式的操作数存放在寄存器中,由指令指定寄存器号。寻找操作数的示意图如图2-3所示。
图2-3 寄存器寻址方式示意图
寄存器可以是八个通用寄存器,包括8位、16位,寄存器也可以是段寄存器,但CS寄存器不能作为目标操作数。
【例2-3】 MOV BX,AX
【例2-4】 MOV DI,5678H
例2-3和例2-4中的BX、AX、DI均为寄存器寻址方式,而数5678H是立即寻址方式。其中例2-3的源操作数和目标操作数的寻址方式都是寄存器寻址方式。使用这种寻址方式可以存取寄存器的内容。
除立即寻址方式、寄存器寻址方式外,以下各种寻址方式的操作数都在内存的某些单元中。从第1章我们知道8086/8088CPU对内存采用分段管理,因此由以下寻址方式得到的是有效地址(简写为EA,在PC机中就是操作数地址的偏移量部分),其物理地址是把有效地址与段基址相加得到的。其中段基址为段寄存器中的内容乘以16的值。
当计算操作数的物理地址时,要注意段基址和偏移地址(有效地址)的来源,表2-1给出了它们的配合情况。例如访问普通变量时,偏移量是EA,而段基址默认存放在DS段寄存器,但也允许指定为ES、SS、CS。对于第3种操作类型,其段寄存器只能是ES。
表2-1 16位机器的段基址和偏移量配合情况
当允许指定段寄存器时(表2-1中的第(1)、(2)、(4)种操作类型),可以使用段超越前缀显示地说明。段超越前缀的功能是明确指出本条指令所要寻址的内存单元在哪个段,其格式由段寄存器名及其后紧跟的冒号(:)组成,例如“ES:”。详细说明见2.2.8节。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。