第三章 寄存器(内存访问)
3.1 内存中字的存储
CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存存储中,内存单元式字节单元,那么一个字就需要用俩哥哥地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。这叫小端方式,还有另外一个存放的方式大端方式。
这里就涉及到存储器中数据的组织方式了:
-
大端方式‘
高位字节排放在内存的低地址端,低位字节存放在高地址端 -
小端方式
低位字节存放在内存的低地址端,高位字节存放在高地址端
8086CPU采用的是X86结构,采用小端方式。
然后在读或写一个内存单元里面的数据的时候,需要指定起始地址,读取的长度。读取的长度是一个字还是一个字节。小端方式的起始地址是低地址。
如使用一个立即数ds:[0],这里就要指定 是字还是字节,字节:byte ptr ds:[0],字:word ptr ds:[0]
3.2 DS和[address]
CPU在读写一个内存单元的时候需要给出该内存单元的地址,内存地址由段地址和偏移地址组成。
DS:用来存放数据的段地址
SS:用来存放栈的段地址
CS:用来存放代码的段地址
这里用DS来举例,比如说我们现在要读取10000H单元的内容,段地址为1000H,偏移地址为0H。那么就要用一下的代码来实现。
mov