寄存器(内存访问)
之前从从访问内存的角度再来学几个重要的寄存器。
3.1、内存中字的储存
CPU中,用16位寄存器来储存一个字(两个字节),但是内存单元是字节单元(一个单元存放一个字节),所以一个字要用两个连续的内存单元来存放,低位字节存放低地址单元中,高位字节存放在高地址单元中。
所以我们提出字单元的概念:**字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。**一般将起始地址为N的单元称为N地址字单元。
3.2 DS和[address]
CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址。比如要读取10000H单元的内容,可以用如下的程序段进行:
mov bx, 1000H
mov ds, bx
mov al, [0]
上面的三条指令将 10000H(1000:0)中的数据读到 al 中。
由于8086CPU不支持将内存数据直接读入ds(段寄存器),所以需要先将内存数据先读入bx(通用寄存器),然后再将数据在寄存器间转移。
而 “ mov al, [0] ”中 “[ ]” 表示一个内存单元, “[ ]” 中的 0 表示内存单位的偏移地址,而内存的段地址是 8086CPU 从 ds 寄存器中自动读取的,所以在把数据移入寄存