内存中字的存储

在内存中存储数据时,由于内存单元是字节单元,因此一个字要用 2 个地址连续的内存单元来存放

字的低位字节存放在低地址单元中,字的高位字节存放在高地址单元中(小端序)

  • 例如,从 0 地址开始,先存放数据 20000(4E20h),后存放数据 18(0012h)

x86汇编_内存中字的存储1.png


字的传送

mov 指令中给出 8 位寄存器可以传输字节型(byte)数据,给出 16 位寄存器可以传输字型(word)数据

  • 例如:
mov bx, 1000h
mov ds, bx
mov ax, [0]  ; 将内存单元1000:0处的字型(word)数据送入ax
mov [0], cx  ; 将cx中的16位数据(word)送入内存单元1000:0处
  • 例如,内存中的情况如右图,执行下列代码:
    1. 首先将段地址寄存器 DS 设置为 1000h
    2. 1000:0 单元处存放的字型数据(word)赋值给 ax,ax = 1123h
    3. 1000:2 单元处存放的字型数据(word)赋值给 bx,bx = 6622h
    4. 1000:1 单元处存放的字型数据(word)赋值给 cx,cx = 2211h
    5. 1000:1 单元处存放的字型数据(word)与 bx 相加,并将值存放在 bx,bx = 8833h
    6. 1000:2 单元处存放的字型数据(word)与 cx 相加,并将值存放在 cx,cx = 8833h

x86汇编_字的传送1.png

要注意:从 内存 ——> 寄存器 中的值是字节型数据(byte)还是字型数据(word),根据寄存器的位数来判断,例如:al 为字节型,ax 为字型