8086 CPU的七种基本的寻址方式【备查】

8086 CPU的七种基本的寻址方式:
    分别是:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址

1. 立即寻址:操作数包含在指令中,是指令的一部分。此时的操作数称为立即数
    MOV AX, 1234H

2. 寄存器寻址:操作数在CPU寄存器中,指令中指定寄存器编号
    MOV SI, AX
    MOV AL, AH

3. 直接寻址:操作数在存储器中,指令直接包含操作数的有效地址。此时操作数一般存放在数据段DS中,采用换段前缀可以使用其它段寄存器。
    MOV AX, [1234H]

4. 寄存器间接寻址:操作数在存储器中,操作数有效地址在SI、DI、BX、BP之一种。在不使用换段前缀的情况下,若有效地址在SI/DI/BX中,则以DS的值为段值;若有效地址在BP中,则以段寄存器SS的值为段值。
    MOV AX, [SI]
    MOV [BP], CX

5. 寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8位或16位位移量之和。即:
        EA = (BX/BP/SI/DI) + (8/16位位移量)
     在不使用换段前缀的情况下,若SI/DI/BX的内容作为有效地址的一部分,则以DS的值为段值;若BP的内容作为有效地址的一部分,则以段寄存器SS的值为段值。
    在指令中给定的8位或16位位移量以补码形式表示。在计算有效地址时,若位移量是8位,则将其有符号扩展为16位,当有效地址超过FFFFH,则对其进行64K取模。
    例如:MOV AX, [DI+1223H]
          MOV BX, [BP-4]
          MOV ES:[BX+5], AL
    注意:书写时基址或变址寄存器名一定要放在方括号中,而位移可以不写在方括号中。
下面两条指令是等价的:
          MOV AX, [SI+3] 等价于 MOV AX, 3[SI]

6. 基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。
        EA = (BX/BP) + (SI/DI)
    在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。有效地址超过FFFFH,则对其进行64K取模。例如:
        MOV AX, [BX+DI]        等价形式     MOV AX, [DI][BX]
        MOV AX, ES:[BX+SI]
        MOV DS:[BP+SI], AL

7. 相对基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容以及指令中给定的8位或16位位移量相加得到。
        EA = (BX/BP) + (SI/DI) + (8/16位位移量)
    在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。有效地址超过FFFFH,则对其进行64K取模。例如:
        MOV AX, [BX+DI+1234H]
        MOV AX, 1234H[BX+DI]
        MOV AX, 1234H[BX][DI]
        MOV AX, 1234H[DI][BX]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值