汇编数据寻址小尾数法如何工作?

问题描述

.data
x dw 7A6H,30B0H
y db 20H
z dw 1,2,3
.code
mov ax,@data
mov ds,ax
lea si,y
mov bl,[si+2]

寄存器bl的值为0,为什么呢? z dw数组中的值不是2吗?

解决方法

否,应该为零。数据布局像

x           y  z
A6 07 B0 30 20 01 00 02 00 03 00

所以[y + 2]为0。

在高级语言中,我们有考虑到大小的索引操作。汇编只是不这样做。