58223495 发表于 2014-4-30 19:36:52

第2章检测点2.3为什么会是这个答案??

第2章检测点2.3为什么会是这个答案?我研究了快2天了就是想不出来,书本我也翻了好几遍。
检测点2.3下面的3条指令执行后,cpu几次修改IP?都是在什么时候?最后IP中的值是多少?mov ax,bxsub ax,axjmp ax
答:一共修改四次 第一次:读取mov ax,bx之后第二次:读取sub ax,ax之后第三次:读取jmp ax之后第四次:执行jmp ax修改IP最后IP的值为0000H,因为最后ax中的值为0000H,所以IP中的值也为0000H
这是怎么算来的??最后的结果为什么是0000H还有“sup”这个什么起什么作用的,第一章和第二章没学这个啊。

盐生 发表于 2014-4-30 19:45:03

本帖最后由 盐生 于 2014-4-30 19:46 编辑

你没去记jmp的作用吧?jmp(可能是jump的缩写)之后就开始从新的地址执行代码,当然变CS:IP(等于CS:AX)了;sub自己早点百度就不用想两天了,,,

为之疯狂 发表于 2014-4-30 20:22:31

本帖最后由 为之疯狂 于 2014-4-30 20:24 编辑

mov ax,bx;将bx的值传到ax中
sub ax,ax   ;ax-ax的值传到ax中
jmp ax       ;经过上一步就能确定ax的值是0,然后修改ip值为ax,也就是0,最后跳转到cs:0的代码段去。

58223495 发表于 2014-4-30 20:44:05

我的天呐,SUP是减法,ax减ax等于0啊,jmp读取是修改一次,读取后执行后变成了又修改一次。终于弄懂了,谢谢!!!!!!!!看到你的提醒我又研究了1小时才弄明白。够笨的O(∩_∩)O~

为之疯狂 发表于 2014-4-30 20:48:15

58223495 发表于 2014-4-30 20:44 static/image/common/back.gif
我的天呐,SUP是减法,ax减ax等于0啊,jmp读取是修改一次,读取后执行后变成了又修改一次。终于弄懂了,谢谢 ...

以后一起讨论吧,我q312154421

盐生 发表于 2014-4-30 20:54:53

58223495 发表于 2014-4-30 20:44 static/image/common/back.gif
我的天呐,SUP是减法,ax减ax等于0啊,jmp读取是修改一次,读取后执行后变成了又修改一次。终于弄懂了,谢谢 ...

是sub,不是sup

牡丹花下死做鬼 发表于 2014-5-2 09:57:50

sub ax,ax == ax -= ax;
页: [1]
查看完整版本: 第2章检测点2.3为什么会是这个答案??