2.汇编之寄存器与8086寻址方式及内存的分段管理

2018-04-06  本文已影响0人  木子心语

1.典型的CPU

1.1.一个典型的CPU是由哪几部分构成?
1.2.不同寄存器与CPU的关系?
1.3. 8086有多少个寄存器?
8686CPU寄存器.png

2.寄存器

2.1.通用寄存器

上图中,AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。

2.2寄存的用途

CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算。

2.3案例
案例.png

假设内存中有块空间之为1,现在它的值加1,并将结果存储到紫色的块中?
我们应该怎么做呢?

2.4寄存器结构
寄存器结构.png

AX,BX,CX,DX这4个通用寄存器都是16位的。
上一代8086的寄存器都是8位的,为了保证兼容,AX,BX,CX,DX,这4个寄存器都可以分为两个可独立使用的8位寄存器来用。

2.5寄存器存储情况
寄存器存储情况.png
2.6.字节与字在寄存器中的存储

8086CPU可以一次性处理以下两种尺寸的数据。

2.7.通用寄存器
2.8 pc寄存器

3. 8086寻址方式

3.1物理地址

CPU访问内存单元时,要给出内存单元的地址,所有的内存单元都有唯一的地址,叫做物理地址。

3.2 8086给出物理地址的方法
3.3 8086逻辑结构
8086逻辑结构.png

如图,

地址加法器采用 物理地址=段地址 * 16 + 偏移地址 的方法用段地址和偏移地址合成物理地址。

3.4 案例

案例一:
三个村庄在一条直线上,A,B,C
A------------1000米-----------------B----------500米---------C
如果我想去C村庄的话,有两种方式:

第一种方式直接给出物理地址,第二种方式是用基础地址和偏移地址相加得到物理地址。

案例二:
我们用纸传递信息,比如我们必须有一张可以容纳4位数据的纸条,才能写下2826这个数据。
如果我们没有一张可以容纳4位数据的纸条,我们这里只有2张可以容纳3位数据的纸条,表现形式:
2--0--0
8--2--6
第一张纸上写200(段地址),在第二张纸上写上826(偏移地址),我们需要做如下运算:
200(段地址) * 10 + 826(偏移地址) = 2826(物理地址)

8086就是这样一个只能提供两张3位数据纸条的CPU。

4.内存的分段管理

内存分段管理.png 内存单元分2段.png

一段内存 10080H ~ 100FFH
段地址:1008H
其实地址(基础地址):10080H
1008:0020 -->> 10080 +0020 = 100A0(物理地址)

注意:段地址 * 16 必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB。

5.总结

以上是对寄存器与8086寻址方式及内存的分段管理介绍,
我们下一章继续对汇编内容讲解。
跟随我,继续学习。

上一篇 下一篇

猜你喜欢

热点阅读