您的位置:首页 > 其它

寻址方式

2016-05-31 21:23 148 查看
在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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  汇编语言