微机原理七种寻址方式 |
您所在的位置:网站首页 › 微型计算机编码方式 › 微机原理七种寻址方式 |
共7种寻址方式: 1. 立即寻址方式 立即数包含在指令中,作为指令的一部分。 如 MOV AX 1234H 2. 寄存器寻址方式 操作数在CPU内部的寄存器中,指令指定寄存器号 16位操作数,寄存器可以是:AX,BX,CX,DX,SI,DI,SP和BP 8位操作数,寄存器可以是:AL,AH,BL,BH,CL,CH,DL,DH 如 MOV AX,BX 3.直接寻址方式 操作数在寄存器中,指令直接包含操作数的有效地址(偏移地址)。 操作数一般存放在数据段(DS)。 可采用段超越前缀,操作数也可含在其他段中。 如 MOV AX,[8054H] 若(DS)=2000H,则物理地址=20000H(低四位为0)+8054H=28054H 则(AX)=物理地址28054H上的字 主要用于变量。
4.寄存器间接寻址方式 操作数在存储器中,操作数有效地址在SI,DI,BX,BP之一,则一般情况下, 如果有效地址在SI,DI,BX中,则段值默认为DS 如果有效地址在BP中,则默认的段值为SS 如 MOV,AX [SI] 5.寄存器相对寻址方式 操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)内容加上指令中给定的位移量。 默认段值同上。 如 MOV AX,[DI+1223H], 默认段值为DS 6.基址加变址寻址方式 操作数有有效地址由基址寄存器(BX,BP)之一的内容与变址寄存器(DI,SI)之一的内容相加。 默认段值同上。 如 MOV AX,[BX][DI] 等价于 MOV AX,[BX+DI] 则默认段值为DS 也可采用段跨越前缀如: MOV DS:[BP+SI],AL MOV AX,ES:[BX+SI] 这种寻址方式适用于数组或表格地处理 7.相对基址加变址寻址方式 操作数有效地址 EA =(BX或BP)+(SI或DI)+偏移理 如 MOV AX,[BX+DI+1234H] 等价于: MOV AX,1234H[BX][DI] MOV AX,1234H[BX+DI] MOV AX,1234H[DI][BX] 一道例题 (DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H 指出各条指令完成后AX寄存器中的内容 (1)MOV AX,1200H 立即寻址方式 (AX)=1200H (2)MOV AX,BX 两者都是寄存器,寄存器寻址,把BX的内容送入AX,(AX)=0100H (3)MOV AX,[1200H] 直接寻址,先求物理地址,默认段值为DS,则物理地址为 20000H+1200H = 21200H 则(AX)=4C2AH(不是2A!) AX是一个字(16位!),采用高高低低的原则,得到字的内容 (4)MOV AX,[BX] 寄存器间接寻址,物理地址 = 20000H+0100H = 20100H 则(AX)=3412H (5)MOV AX,1100H[BX] 寄存器相对寻址,物理地址 = 20000H + 0100H + 1100H = 21200H 则(AX)=4C2AH (6)MOV AX,[BX][SI] 基址加变址寻址,有效地址=0100H + 0002H = 0102H 物理地址 = 20000H+0102H = 20102H (AX)=7856H (7)MOV AX,1100H[BX][SI] 相对基址加变址寻址,物理地址=20000H+0100H+0002H+1100H = 21202H 则(AX)=65B7H 总结 除立即寻址和寄存器寻址外,无论是哪种寻址方式,关键在于如何求出物理地址,基址或者段值+变址或者偏移量 对于立即寻址和寄存器寻址,相当于直接给出了操作数。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |