Assmebly Language Note(2)

                                                               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。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值