汇编——存储单元的地址和内容

相关内容见《IBM-PC汇编语言程序设计》清华大学出版社 chapter2

存储器以字节为单位存储信息

每个字节单元有有唯一一个物理地址,从0编号,顺序+1

低位字节存入低地址,高位字节存入高地址

机器以偶地址访问(读/写)存储器:

字、4字单元地址用它的 最低 字节地址来表示。

在图中,读1000H读出一个字。

可以发现,尽管每个存储单元存了一个字节,但是一个地址读写一个字。(按字操作)

而且操作偶数地址,因此1001读出需要访问1000和1002

这里需要访问两次存储器!!


汇编——存储单元的地址和内容_第1张图片
字节存储
汇编——存储单元的地址和内容_第2张图片
读地址

实模式存储器寻找:

8086、/8088工作在20位地址,独占系统所有资源。

8086/8088的数据总线宽度是16位,地址总线宽度是20位。16位字长实现20位寻址

小段:从0地址开始,每16个字节为一小段,共有64k个小段。

小段首地址特征:后四位为0。

--逻辑地址 (2个16)是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为16位的二进制数。

段地址:段起始地址的高16位(DS)

偏移地址:段内相对于段起始地址的偏移值(16位)(有效地址EA)

--物理地址 (1个20)也叫实际地址或绝对地址,是CPU访问存储器时实际使用的地址,为20位地址。


汇编——存储单元的地址和内容_第3张图片
实模式下如何得到物理地址

>>段寄存器(CS、DS、SS、ES、FS、GS)     存放段地址,确定一个段的的起始地址.

用途各不相同:

代码段(CS):存放当前正在运行的程序

数据段(DS):存放当前运行程序所用的数据 ,或串处理指令中的源操作数

堆栈段(SS):定义堆栈(后进先出)的所在区域

附加段(ES):附加的数据区,或串处理指令中的目的操作数

各段在存储器中的分配:由操作系统负责负责,但需要时也可指定.

(so,记住如何运算的,有时候也可以16*cs+ip/pc什么的)

段的重叠:  指每个段区的大小允许根据实际需要来分配,而不一定要占有64KB的最大段空间

汇编——存储单元的地址和内容_第4张图片
段搭配

你可能感兴趣的:(汇编——存储单元的地址和内容)