汇编语言读书笔记 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

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