寻址方式

  • 在8086CPU中,只有bx,si,di,dp这四个寄存器可以用在”[…]”中来进行内存单元的寻址。
  • 在[…]中,这四个寄存器可以单独出现,或只能以4种组合出现:bx和si,bx和di,bp和si,bp和di。
  • 只要在[…]中使用寄存器bp,而指令中没有显性的给出段地址,段地址就默认在ss中。

汇编语言中用3个概念来表达数据的位置。

(1)立即数

    对于直接包含在机器指令中的数据(执行前在CPU的指令缓冲器中),在汇编语言中称为:立即数,在汇编指令中直接给出。
    eg:
         mov ax,1
         add bx,2000h
         or bx 00010000b
         mov al,'a'

(2)寄存器

    指令要处理的数据在寄存器中,在汇编指令中给出相应的寄存器名。

(3)段地址(SA)和偏移地址(EA)

    指令要处理的数据在内存中,在汇编指令中可用[x]的格式给出EA,SA在某个段寄存器中。

寻址方式

(1)直接寻址

    eg:
        [idata] 

(2)寄存器间接寻址

    eg:
        [bx]
        [si]
        [di]
        [bp] 

(3)寄存器相对寻址

    用于结构体: [bx].idata
    用于数组:   idata[si],idata[di] 
    用于二维数组: [bx][idata]

    eg:
        [bx+idata]
        [si+idata]
        [di+idata]
        [bp+idata]

(4)基址变址寻址

    用于二维数组:[bx][si]

    eg:
        [bx+si]
        [bx+di]
        [bp+si]
        [bp+di]

(5)相对基址变址寻址

    用于表格(结构)中的数组项:
        [bx].idata[si]
    用于二维数组:
        idata[bx][si]

    eg:
        [bx+si+idata]
        [bx+di+idata]
        [bp+si+idata]
        [bp+di+idata]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值