第2章寄存器(CPU工作原理) 内存 汇编指令 B 20000 吕 2320001 福x,0123H 0120002 BB200 0320004 mov bx,0003H 指令缓冲器 20位地址总线[00205 20006 其他 数据总线 20007 部件 然图 0n20006 DB20009 } ade ax, bx 输入输出 m2004 右 控制电路 图2.11初始状态 AX 20000 23200}m0ax,0123日 0000 IP0000 0112002 BB2003 03 bx,0003H 指令缓冲器 20位地址总线[00200 其他 部件 0008 2000 add ax, bx 输入输出 2000A 良行控友 控制电路 图212cs、|P中的内容送入地址加法器 图2.13中发生的变化是由地址加法器将物理地址送入输入输出控制电路 汇编指令 AX 2320001 aX,0123H 20002 BB2000 0312004 bx,0003H 指令缓冲器 20位地址总线0020005 0000 8920006 mov ax, bx 其他 D820007 部件 数据总线 sod ax, bx DB2000 输入输出 行控制器拉制电路 图2.13物理地址被送入输入输出控制电路
汇编语言 图2.14中发生的变化是输入输出控制电路将物理地址20000送上地址总线 图215中发生的变化是从内存2000单元开始存放的机器指令B82301通过数据总 线被送入CPL CPU 汇编指令 2320001 ,0123H P1000 01120002 20004 指令缓冲器 20位地址总线L002000 其他 20000 nov ax, DX 部件 数据总线 8120007 0120008 add ax. bx D20009 图2.14物理地址被送上地址总线 内存 正编指令 AX csIro 232001 ax,0123H P|0 0200 BB2000 指令缓冲器 032004}mx,003H 20位地址总 20005 其他 数总线 BS2301I DB20009 add ax, bx 图2.15机器指令被送入CPU 图2.16中有了进一步的变化,输入输出控制电路将机器指令B8230送入指令缓冲器。 汇编指令 20001 v ax, 0123H HX IP oOO 2000 指令组冲器 20004 Tov Bx,003H 20位地址总线 Bs2301 2O6 其他 部件 数总线 20007 0120008 ]3004x,b 图2.16机器指令被送入指令缓冲器
第2章寄存器(CPU工作原理) 图2.17中所示为读取一条指令后,IP中的值自动增加,以使CPU可以读取下一条指 令。因当前读入的指令B82301长度为3个字节,所以IP中的值加3。此时,CS:IP指向 内存单元20000003 汇编指令 20000 20001 mov ax,01238 o2000 BB2000 02004 smov bx,003a 指令缓冲器 位地址总线0205 B82301 820006 数据总线 D8200 0120008 2000 输入输出 2000A 执行控制签控制电路 图217读取指令后1P中的值自动增加 图2.18所示为执行控制器执行指令B82301(即 mov ax,0123H) 内有 定编指令 20000 Cs2000 2320001 X,0123H BX IP0003 20003 03120004 bx,0003H 指令缓冲器 20位地址总线 20005 89120006 o ax, bx 件 数据总线 DK20007 2008yadt DB12000 输入输出 图2.18执行指令 图2.19所示为指令B82301被执行后AX中的内容为0123H:此时,CPU将从内存单 元2000:0003读处取指令。 汇编指令 Ax 23 cs Lao 20001 >new ax.0123H 20002 02004}nobx,o003 指令缓冲器 20位地址总线002000 其他 2003mx,b 件 200940ax,b 输入输出 2000A 图2.19指令执行结果
汇编语言 下面的一组图(图220-图226),以图219的情况为初始状态,展示了8086CPU继续 读取、执行3条指令的过程。注意IP的变化。(下面的描述中,省略了读取每条指令的细 节。) 图20所示为初始情况之二,这时CS:2000H,IP03H,CPU将从内存20004 16+0003H处读取指令BB0300。 汇编指令 Ax [123 cs Lz 2200}max.012 HA 02004}mbw.,000m 指令级冲器 m地线上 200 xo >aud ax,br 输入输 热控是控制睡 图2.20初始情况之二图2.20初始情况之二 图2.21所示为CPU从内存20003H处读取指令BB0300入指令缓冲器,IP中的值加3。 =巴 232001}aax,0123 20003 20004 指令缓冲器 bx, CO0 3H 位地址总线 20005 BB000 new ax,bx 部件 数据线 20007 DB20009 图221第二条指令被读入指令缓冲器 图2.22所示为执行指令BB0300即 moy bx,000H)的情况,BX中的内容为0003H 编指令 AX Load 20001 aX,0123H 20002 20003 20004mobx,0003H 指令缓冲器 210位地址总线 20005 其他 ,如x 部什 数据总线 20007 0120008 2009>add ax,bx 图222第二条指令执行情况
第2幸寄存器(CPU工作原理) 如图223所示,CPL从内存20006H处读取指令89D8入指令缓冲器,IP中的值加2 内存 江编指令 Ax[01 232000 v ax, 0123H Bx 0003 IP L00os 01200 BE 指令缓冲器 20位地址总线[02006 89D8 89206 其他 数据总线 0t20008 a 输入输出 图2.23第三条指令被读入指令缓冲器 图2.24所示为执行指令89D8(即 mov ax.bx)后的情况,AX中的内容为0003H 国指令 20000 AX oos 320001 x,0123B 030002 Bx10003 IPOOOK 2000 0320004 bx,0003H 指令暖冲器 20位地址总线L00205 其他 部件 EkaR Dsd 30w7 )now ax, ba s920006 0t20008 ed ax, bx 20009 输入输出 2000A 图2.24第三条指令执行情况 如图2.25所示,CPU从内存20008H处读取指令01D8入指令缓冲器,PP中的值加2 L 内存 汇编指令 地址加法 B82000 AX0003 2320001 01120002 BX|0003 BB20003 0320004 nov bx,00038 指令缓冲器 20位地址总线[00_2000 8920006 其他 0vax,如x 部件 数据总线 D20007 01120008 add ax,by DB20009 输入输出 图2.25第四条指令被读入指令缓冲器