汇编语言-第二章 寄存器(CPU工作原理)之执行指令过程(一)

2018-05-28 15:36:08 浏览数 (1)

<1>.初始状态:这时,CS:2000H,IP:0000H,CPU将从内存2000H×16 0000H处取指令执行。

<2>.CS、IP中的内容送入地址加法器,由地址加法器完成: 物理地址=段地址×16 偏移地址

<3>.由地址加法器将物理地址送入输入输出控制电路。

<4>.输入输出控制电路将物理地址20000H送上地址总线

<5>.从内存20000H单元开始存放的机器指令B8 23 01通过数据总线被传入CPU

<6>.输入、输出控制电路将机器指令B8 23 01送入指令缓冲器。

<7>.读取一条指令后,IP中的值自动增加,以使CPU可以读取下一条指令。此时,CS:IP指向内存单元2000:0003。

<8>.执行控制器指令:B8 23 01,即执行命令mov ax,0123H

<9>.指令B8 23 01 执行后,AX中的内容为0123H;此时,CPU将从内存单元2000:0003读取指令。

下面的一组图展示了8086CPU继续读取、执行3条指令的过程。注意IP计划。

<10>.初始情况之二,这时CS:2000H,IP:0003H,CPU将从内存2000H×16 0003H处读取指令:BB 03 00。

<11>.CPU从内存20003H处读取指令BB 03 00入指令缓冲器,IP中的值加3.

<12.>执行指令:BB 03 00(即mov bx,0003H)的情况,BX中的内容为0003H

<13.>CPU从内存20006H处读取指令89 D8入指令缓冲器,IP的值加2

. <14.>执行指令89 D8(即mov ax,bx)后的情况,AX中的内容为0003H

<15.>CPU从20008H处读取指令01 D8如指令缓冲器,IP的值加2

<16>.执行指令01 D8(即add ax,bx)后的情况,AX中的内容变成0006H

通过上面的过程展示,8086CPU的工作过程可以简要描述如下:

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

在8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=F000H,IP=FFFFH,即在8086PC刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。

0 人点赞