一. X86段,代码段概念
(X86有20根地址线,寻址能力为1MB,CPU为16位,一次处理16位二进制数,采用物理地址=段地址X16+偏移地址的方式寻址。)
编程需要时,可以将内存空间的一段连续的地址定义为一个段。
其中段地址一定是16的倍数,即一个个位为0的16进制5位数。段的最大长度受到偏移地址寻址能力的制约,X86偏移地址寻址能力为64KB。
存放代码的段内存称之为代码段,将一段内存看作代码段,只是编程考虑,与硬件CPU等无关。
二. 寄存器
地址单元:内存的最小单元的地址,每个单元8位。连续,0,1,2,3,4……
地址字单元:内存的最小字单元地址,每个单元两个地址单元,16位,存一个字,间隔,0,2,4,6……
DS 和 [address]
DS寄存器:存放要访问的数据的段地址,
读取10000H地址的数据:
mov bx,1000H
mov ds,bx
mov al,[0] //将一个内存单元中的值送到寄存器中。
格式:
mov 寄存器名,内存单元地址
[address]表示一个内存单元,其中的address表示内存单元的偏移地址。
执行时,CPU自动取ds寄存器中的值作为内存单元的首地址。
注意:
X86不支持直接将数据送入段寄存器(硬件设计),只能用一个寄存器(例子中bx)进行中转。