2.寄存器
CPU由运算器,控制器,寄存器等器件构成。这些器件靠内部总线相连。之前说的总线相对于内部总线来说是外部总线。
内部总线实现CPU内部器件联系,外部总线实现CPU与主板上器件联系。
运算器:进行信息处理;
寄存器:进行信息存储;
控制器:控制器各器件空座
内部总线:连接各器件,进行数据传送
对我们汇编程序员说,CPU中主要器件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。我们通过改变各种寄存器内容来对CPU控制。
不同CPU 寄存器个数不同。 8086CPU14个寄存器。
2.1 通用寄存器
8086CPU寄存器都是16位,可放两个字节。 AX,BX,CX,DX这4个寄存器通常存放一般性的数据,被称通用寄存器。
以AX为例,寄存器逻辑结构如图
一个寄存器课存储一个16位数据
因为8086上一代CPU的寄存器都是8位的,为了兼容性,8086CPU的AX,BX,CX,DX这4个寄存器都可以氛围两个独立使用的8位寄存器使用。
AX可氛围AH和AL;
BX可分为BH和BL;
CX可分为CH和CL;
DX可分为DH和DL;
2.2
8086CPU可以一次性处理两种尺寸数据。
字节:Byte 一个字节由8个bit组成,可以存放在8位寄存器中。
字;记为WORD,一个字由两个字节组成,分为高位字个低位字
关于数制
为什么计算机用16进制?
如AX中数据是010011100001000000 16位二进制数字。可用16进制4E20表示,由于一个内存单元可存放8位数据,而CPU又可存放N个8位,所以计算机中数据大多由1~N个8位数据构成。很多时候需要只管看出组成数据各个字节数据的值,用16进制可直观看出这些数据是由哪些8位数据构成。如20000写成 4E20可看出数据由4E和20两个8位数据构成。AH里存放4E AL中存放20
2.5
8086CPU有20位地址总线,而8086CPU又是16位结构,呢么他只能送出16位的地址,怎么办呢?
8086CPU用两个16位老合成20位。一个段称为段地址,一个称为偏移地址。
关于段地址X16
段地址X16也可说为 “左移4位”而其中的位指的是二进制位。
总结思考,一个数据的十六进制形式左移1位,相当于乘以16,一个数据的十进制形式左移以为相当于乘以10,一个X进制数据左移以为相当于乘以X
2.8段的概念
“段地址”不能误以为内存被划分成一个个段,段的划分来自于CPU,
在编程时可根据需要,将若干地址连续内存单元看作一个段,用段地址X16定位段起始地址(基础地质),用偏移地址定位断种内存单元。
需要注意偏移地址为16位,16位的地址寻址能力64KB,所以一个段的长度最大为64KB
错题
1给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH (注意了寄存器只能保存16位,但是这是寻址,地址线有20位)
2 有一数据存放在内存20000H单元中,现在给定段地址为SA,若想用偏移地址寻址到此单云,则SA应满足的条件是:最小为1001H 最大为2000H。(用计算的方法解决,
在计算最小值时,遇到计算20000H-FFFFH,记住16进制的算术中借一位就是16!!,结果是10001H,再/16=1000.1H因为1000.1H无法寻到20000H所以
应该进一位1001H。