汇编语言个人学习笔记——第二章 :寄存器(CPU工作原理)第一部分

CPU概述:

一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。

内部总线与外部总线区别:

内部总线实现CPU内部各个器件之间的联系。

外部总线实现CPU和主板上其他器件的联系。

寄存器概述:

对于CPU内部也需要存放数据,所以除了高级缓存和二级缓存,还有深入的寄存器。

8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

2.1通用寄存器

8086CPU的所有寄存器都是16位的,可以存放两个字节。

AX、BX、CX、DX通常用来存放一般性数据被称为通用寄存器。

以AX寄存器为例,结构如图

一个16位的寄存器可以存储一个16位的数据。

16位数据在寄存器中的存放情况:

数据:18

二进制表示:10010

在寄存器AX中的存储:

数据:20000

二进制表示:1001111000100000

在寄存器AX中的存储:

一个16位寄存器所能存储的数据最大值为:2的16次方-1=65535

8086的上一代寄存器都是8位的;

为保证兼容性,这四个16位寄存器都可以分为两个独立的8位寄存器使用。

AX可以分为AH和AL(H是高位,L是低位,High和Low)

BX可以分为BH和BL

CX可以分为CH和CL

DX可以分为DH和DL

8086的8位寄存器的存储逻辑:

以AX为例,8086的16位寄存器分为两个8位寄存器的情况:

AH全部填0

AX的低8位(0位~7位)构成了AL寄存器,高8位(8位~15位)构成了AH寄存器。

AH和AX是可以独立使用的8位寄存器。

8086的8位寄存器数据存储情况:

一个8位寄存器所能存储的数据的最大值是255(2的15次方-1)

2.2 字在寄存器中的存储

一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在寄存器的高8位寄存器和低8位寄存器中。

1个字=2个字节=16位

关于数制的讨论:

由于一个内存单元可以存放8位数据,CPU中的寄存器又可以存放n个8位数据,也就是说计算机的数据大多是由1~N个8位数据构成的。

用16进制来表示数据可以直观的看出这个数据是由哪些8位数据构成的。每两位对应一个八进制。16进制数的一位相当于二进制数的四位。

2.3 几条汇编指令

注:汇编指令不区分大小写。第一行应该是将18送入AX

CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。

答案应该是044CH(后面的H代表16进制),16进制8226+8226=1044C,但是寄存器只能存放16位二进制,16进制数的一位对应二进制数的四位,所以前面的1无法存放到AX寄存器中,这个1以后再说。

答案应该是0058H,十六进制C5+93=158,但是AL是AX的低8位寄存器,这里将AL和AH看作两个独立的寄存器,互不相干,一个8位寄存器只能存放16进制的两位,158前面高位的1无法存入AL中,也不会存入AH中。

到这里先完成检测题,再往下进行学习吧,后面的题目会越来越难,学习并不是越快越好,要扎实。

猜你喜欢

转载自blog.csdn.net/k17010/article/details/81117085