汇编(二)——存储器组织与段寄存器

来源:互联网 发布:encode数据库使用 编辑:程序博客网 时间:2024/05/21 06:48

储器是计算机存储信息的地方。程序运行所需要的数据、程序执行的结果以及程序本身均保存在存储器中(内存)。

 

 

8086存储格式

1、数据的存储格式
计算机存储信息的基本单位是一个二进制位(bit),8个二进制位组成一个字节(Byte),位编号由右向左从0开始递增计数为D7~D0,2个字节组成一个字(Word),D15~D0,4个字节组成双字(DWord),D31~D0.其中最低有效位LSB(Least Significant Bit),即D0位;最高有效位MSB(Most Significant Bit)对应字节、字、双字分别指D7、D15、D31。在存储器中以字节为单位存储信息,每一个字节单元被赋予一个地址,即存储器地址。地址编号从0开始,顺序加1。一个存储单元中存放的信息称为该存储单元的内容。字或双字在存储器中占相邻的2个或4个存储单元;存放时,低字节存入低地址,高字节存入高地址;字或双字在存储器中地址用它的低地址来表示。80X86处理器采用这种“低对低、高对高”的存储形式,被称为“小端方式(Little Endian)”。字节单元的地址可以是偶数或奇数。字单元安排在偶地址(xxx0B)、双字单元安排在模4地址(能被4整除的地址,即xx00B),被称为“地址对齐”。不对齐地址的数据,处理器访问时,需要额外的访问存储器时间。
2、存储器的分段管理
808CPU的地址线是20位,最大可寻址空间2的20次方共1MB其物理地址范围从00000H~FFFFFH。8086CPU将1M空间分成许多逻辑段(Segment),每个段最大64KB,每个存储器单元可以用“段基地址:段内偏移量”表达其准确的物理位置。
段基地址——说明逻辑段在主存中的起始位置,简称段地址。段地址必须是模16地址,即xxxx0H形式,省略低4位0,段地址可以用16位数据表示了。通常保存在16位段寄存器中。
段内偏移地址——说明主存单元距离段起始位置的偏移量(Displacement),简称偏移地址(Offset)。因为限定每段不超过64K,所以偏移地址也能用16位来完全表示。
3、段寄存器
8086设计有4个段寄存器:CS、DS、ES、SS
代码段(COde Segment)存放程序的指令。CS:IP取得下一条要执行的指令。
堆栈段(Stack Segment)确定堆栈在主存的区域。SS:SP来操作堆栈中的数据。
数据段(Data Segment)存放当前运行程序所用的数据。存储器中操作数的偏移地址由各种主存寻址方式得到,称之为有效地址EA
附加段(Extra Segment)也用于数据的保存。
串操作的目的区必须是附加段。8086允许段超越,设计有四个段超越前缀指令,分别是:
CS:
SS:
DS:
ES:
寄存器的使用规则如下:

段寄存器使用规则

原创粉丝点击