一、思维导图

二、关键内容摘录


一、思维导图

汇编语言学习笔记03——寄存器

二、关键内容摘录

1.前一章所说的总线,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件(运算器、寄存器和控制器)之间的联系,外部总线实现CPU和主板上其他器件的联系。

2.8086CPU14个寄存器:AX、BX、CX、DX(通用寄存器,可以划分为nH、nL(n代表ABCD),分别代表高八位和低八位)、SI、DI、SP、BP、IP(指令指针寄存器)、CS(代码段寄存器)、SS、DS、ES(nS:段寄存器(n代表SDE))、PSW

3.N(16、32、64)位结构(N位机、字长为N位等常见说法与N位结构的含义相同)描述了一个CPU具有下面几个方面的结构特性。

  • 运算器一次最多可以处理N位数据;
  • 寄存器的最大宽度为N位
  • 寄存器和运算器之间通路为N位
  • 8086是16位CPU,也就是说在8086内部能够一次性处理、传输、暂时存储的信息的最大长度是16位。

4.8086是16位结构的CPU,但有20位地址线,达到1MB寻址能力,如果将地址从内部简单地发出,那么它只能送出16位地址,表现出的寻址能力只有64KB。8086CPU采用两个16位地址合成一个20位的物理地址。

 

 

汇编语言学习笔记03——寄存器

 

步骤如下:

  • CPU中的相关部件提供两个16位的地址,一个称作段地址,另一个称作偏移地址;
  • 段地址和偏移地址通过内部总线送入一个称为地址加法器的部件;
  • 地址加法器将两个16位地址合成一个20位的物理地址;
  • 地址加法器通过内部总线将20位物理地址送入输入输出控制电路;
  • 输入输出控制电路将20位物理地址送上地址总线;
  • 20位物理地址被地址总线传送到存储器。

5.地址加法器采用物理地址=段地址X16(左移4位)+偏移地址的方法合成物理地址。

6.内存并没有分段,段的划分来自于CPU。注意两点:段地址X16必然是16的倍数,所以任何一个段的初始地址一定是16的倍数。偏移地址是16位,16位地址的寻址能力是64KB,所以一个段的长度最大是64KB。CPU可以用不同的段地址和偏移地址形成同一个物理地址。

7.任意时刻,CPU将CS:IP指向的内容当做指令执行。

8.8086CPU的工作过程可以如下简要描述:

  • 从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
  • IP=IP+所读取指令的长度,从而指向下一条指令;
  • 执行指令。转到步骤1,重复这个过程。

9.8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H,即8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。(最新的PC开机时,CS:IP定位到何处?)

10.CPU根据什么将内存中的信息看做指令?根据CS:IP指向的内存单元,将其中内容当做指令执行。

11.能够改变CS、IP内容的指令统称为转移指令。

12.debug功能

  • r查看、改变CPU寄存器内容。格式:-r | -r 寄存器
  • d查看内存中内容。格式:-d | -d 段地址:偏移地址 | -d 段地址:起始偏移地址 结尾偏移地址
  • e改写内存中的内容。格式:-e 起始地址 数据 数据…,可以写入数字、字符、字符串和汇编指令的机器码
  • u将内存中的机器指令翻译成汇编指令。格式:-u | -u 段地址:偏移地址
  • t执行一条机器指令。
  • a以汇编指令格式在内存中写入一条机器指令。格式:-a 段地址:偏移地址
  • 以上所有段地址可以换为对应段寄存器,比如DS\CS\SS\ES

相关文章: