关于书中问题2.3(33页)CPU运行的流程相关
n内存中存放的机器码和对应汇编指令情况: (初始:CS=2000H,IP=0000H)
书中分析
(1)当前CS=2000H,IP=0000H,则CPU从内存2000H×16+0000H=20000H 处读取指令,读入的指令是:B8 22 66(mov ax,6622H),读入后IP=IP+3=0003H;// 这里想问下为什么IP会加 3 ?
(2)指令执行后,CS=2000H,IP=0003H,则CPU 从内存2000H×16+0003H=20003H处读取指令,读入的指令是:EA 03 00 00 (jmp 1000:0003),读入后IP=IP+5=0008H; //为什么这里的IP又变成了加5呢?
(3)指令执行后,CS=1000H,IP=0003H,则CPU从内存1000H×16+0003H=10003H处读取指令,读入的指令是B8 00 00(mov ax,0000),读入后IP=IP+3=0006H;
(4)指令执行后,CS=1000H,IP=0006H,则CPU从内存1000H×16+0006H=10006H处读取指令,读入的指令是8B D8(mov bx,ax),读入后IP=IP+2=0008H; //为什么要加 2呢?
(5)指令执行后,CS=1000H,IP=0008H,则CPU从内存1000H×16+0008H=10008H处读取指令,读入的指令是 FF E3(jmp bx),读入后IP=IP+2=000AH;//为什么要加 2呢?
(6)指令执行后,CS=1000H,IP=000H,CPU从内存10000H处读取指令…
问题分析结果:
n(1)mov ax,6622
n(2)jmp 1000:3
n(3)mov ax,0000
n(4)mov bx,ax
n(5)jmp bx
n(6)mov ax,0123H
n(7)转到第(3)步执行
楼主同学,看了下你的贴子,大体问的是一个问题。。。
IP为什么一会加2,一下加5.
如:MOV AX,6622H机器码为 B8 22 66 共计三字节,SO ,IP加3;
如:JMP1000:3 机器码为:EA 03 00 00 10 ,所以,五字节,IP 加5;
自杀个!!求大牛解答。。 坐等! QQ 821024807 s0512 发表于 2012-9-24 08:25 static/image/common/back.gif
楼主同学,看了下你的贴子,大体问的是一个问题。。。
IP为什么一会加2,一下加5.
如:MOV AX,6622H机器 ...
:lol呃!!! 谢啦!!!! 明白了!! 呵呵 !!! 谢啦哥们!!! IP加几是根据读入的指令来计算的,有几个指令就加几,例如:读入的指令是:B8 22 66(mov ax,6622H),读入后IP=IP+3=0003H;// 这里想问下为什么IP会加 3 ?因为读入的指令是:B8 22 66(3个指令) walykyy 发表于 2012-9-24 11:36 static/image/common/back.gif
IP加几是根据读入的指令来计算的,有几个指令就加几,例如:读入的指令是:B8 22 66(mov ax,6622H),读入后I ...
呵呵 已经懂了!!谢啦!!!
页:
[1]