彙編語言讀書筆記 Day 09

問題點 2.3

問題

內存中存放的機器碼和對應的彙編指令情況如圖2.27所示,設CPU初始狀態:CS=2000H,IP=0000H, 請寫出指令執行序列。


解析

(1)CS=2000H,IP=0000H,CS:IP指向20000H,執行mov ax, 6622H,執行後CS=2000H,IP=0003H。
(2)CS=2000H,IP=0003H,CS:IP指向20003H,執行jmp 1000:3, 執行後CS=1000H,IP=0003H。
(3)CS=1000H,IP=0003H,CS:IP指向10003H,執行mov ax, 0000, 執行後CS=1000H,IP=0006H。
(4)CS=1000H,IP=0006H,CS:IP指向10006H,執行mov bx,ax, 執行後CS=1000H,IP=0008H。
(5)CS=1000H,IP=0008H,CS:IP指向10008H,執行jmp bx, 執行後CS=1000H,IP=0000H。
(6)CS=1000H,IP=0000H,CS:IP指向10000H,執行mov ax,0123H, 執行後CS=1000H,IP=0003H。

答案

1. mov ax, 6622H
2. jmp 1000:3
3. mov ax, 0000
4. mov bx,ax
5. jmp bx
6. mov ax, 0123H
7. 轉到第3步執行

檢測點2.3

問題

下面的3條指令執行後,CPU幾次修改IP?都是在什麼時候?最後IP中的值是多少?

mov ax,bx
sub ax, ax
jmp ax

答案

CPU4次修改IP,分別是在:
第1條指令執行後,IP指向第2條指令
第2條指令執行後,IP指向第3條指令
第3條指令執行後,IP指向第4條指令
JMP指令執行後,IP重新指向第1條指令
最後IP的值爲:0000H

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章