您的位置:首页 > 其它

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

2018-02-09 00:00 253 查看
<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机开机后执行的第一条指令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: