关闭

寻址方式

标签: 汇编语言
167人阅读 评论(0) 收藏 举报
分类:
  • 在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
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39472次
    • 积分:1018
    • 等级:
    • 排名:千里之外
    • 原创:64篇
    • 转载:14篇
    • 译文:0篇
    • 评论:5条
    最新评论