<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讀取指令。
內存
<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
im
經過上面的過程展現,8086CPU的工做過程能夠簡要描述以下:數據
- 從CS:IP指向內存單元讀取指令,讀取的指令進入指令緩衝器
- IP=IP+所都取指令的長度,從而指向下一條指令
- 執行指令。轉到第一步,重複這個過程。
在8086CPU加電啓動或復位後(即CPU剛開始工做時)CS和IP被設置爲CS=F000H,IP=FFFFH,即在8086PC剛啓動時,CPU從內存FFFF0H單元中讀取指令執行,FFFF0H單元中的指令是8086PC機開機後執行的第一條指令。img