[031][汇编语言]寻址 ax bx cx dx sp bp
2018-04-25 本文已影响59人
AkuRinbu
reg寄存器 与 sreg段寄存器
- reg 寄存器
ax bx cx dx
ah al
bh bl
ch cl
dh dl
sp bp si di
- sreg 段寄存器
ds ss cs es
- 可用做寻址[...]
[bx] [si] [di] [bp]
bx+si
bx+di
bp+si
bp+di
- bp寄存器 默认使用 段地址ss
idata 立即数
mov bx,idata
mov bx,1
立即数idata执行前在CPU的指令缓冲器中
寻址方式
- 寄存器相对寻址
寄存器相对寻址 [bx+idata]
用于结构体 [bx].idata
用于数组 idata[si]
用于二维数组 [bx][idata]
- 基址变化寻址
基址变化寻址 [bx+si]
用于二维数组 [bx][si]
- 相对基址变化寻址
相对基址变化寻址 [bx+si+idata]
用于表格(结构)中的数组项 [bx].idata[si]
用于二维数组 idata[bx][si]
寄存器决定数据大小
byte 字节
mov ds:[0],al
mov byte ptr ds:[0],01
word 字
mov ds:[0],ax
mov word ptr ds:[0],0001
push 只进行 word字 操作
汇编语言 与 C 语言
- 汇编语言
[bx+idata+si]
[bx].idata
[bx],idata[si]
bx 定位整个结构体
idata 定位其中某个数据项
si 定位数组中的每个元素
- C语言
dec.cp[i]
dec 结构体变量的地址
cp 数组项的地址
i 定位cp中的每一个字符