鱼C论坛

 找回密码
 立即注册
查看: 3170|回复: 12

小甲鱼老师进来看下!有点不理解你的答案了!

[复制链接]
发表于 2011-12-1 03:47:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
检测点2.3处。要求看出三条指令执行后CPU几次修改IP?最后IP的值=多少
命令如下:
mov ax,bx
sub ax,ax
jmp ax

我刚开始看题目的时候以为是三次。mov 1次,sub 1次(sub命令我记得应该还没学吧!哎不懂。)jmp 1次?如果按照老师说的是四次也可以理解!因为jmp 运行后IP被改了一次。当JPM的命令被CPU运行后IP再次被改、应该是我错了才对。 那为什么IP 不等于 AX  !而是 = 0 ?难道和 SUB这个命令有关·请知道的大侠们解释下或者 小甲鱼老师您来看下吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 04:26:06 From FishC Mobile | 显示全部楼层
你咎结这么狠干嘛?DOS还有什么用 ? 学些命令为以后的W32做铺设! 王爽出的题目完全可以不理, 因为他的思路和我们的不同,他出题都用术语! 千万别听他的什么不通过检测点就不要往下学习! 你的问题我不想看,因为这DOS确实没多大用,晚安
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 04:34:23 From FishC Mobile | 显示全部楼层
还是回答下吧! 几次修改IP? 你那三条指令只有一条是修改IP的, 也就是jmp ax . 也就是ax里的值是这条指令的ip 前面的sub是减法指令,比如 sub ax,bx =ax-bx=ax ...    jmp ax其实就是 跳 ax 这时ax里存的是地址.晚安
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 04:52:08 From FishC Mobile | 显示全部楼层
3次,这王爽有病,刚细看了下这个问题!
一: mov ax,bx 此时IP假如等于X
二: sub ax,ax 此时程序执行这条指令比需从上一个地址偏移过来 这就有一次了!
三: jmp ax 此时同理,要想执行这条指令 ip又得变化,这次加上次的也就二次了!
四: jmp ax 这条指令光明正大地修改当前ip 此时ip=0 jmp ax就等于ip=0 总共三次, 看我说王爽有病吧?!!! 有的问题问的太贱了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 06:30:29 | 显示全部楼层
本帖最后由 嗜血灵异狂 于 2011-12-1 06:36 编辑

很简单  指令是要转化成机器码执行的    所以对应字节来说  IP肯定是被每条指令修改过 至于为什么有三条执行代码  IP被修改了 四次   不要忘记一个程序结束后  程序都要进行返回或者初始化状态  所以就是4次修改IP  就跟一根绳子一样   你一刀砍下去变成了几根?   2刀下去变成几根?  推理一下就知道了     我们学习的不是变成的结构   而是一种编程的思维  也就是物理的逻辑思维  我以前也 很不懂为什么一堆代码数据可以呈现出这么多功能来  听小甲鱼的久了 才意识到原来他不是教我们编程的方法  目的是培养我们一种编程思维   让你知道一个程序 要实现什么功能就要懂得自己去思考   让自己的大脑如同CPU一样的思维
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 09:05:50 | 显示全部楼层
嗯!楼上的说得很对!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 10:03:38 | 显示全部楼层
4次,你基础没打好。理解完了。这题太简单了。
难在JMP   CPU读取指令后,IP自动加上指令的长度,也就是说读取JMP的时候IP被修改3次,然后执行JMP,修改IP 也就是4次。可否懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 10:29:20 | 显示全部楼层
说实话!我刚在做这题的时候也很纠结,不过,看了小甲鱼的答案之后就理解了!呵呵……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 18:30:51 | 显示全部楼层

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-1 18:59:25 | 显示全部楼层
各位大侠,修改了几次我在出问题的时候就已经分析了·我懂了答案的意思。
我的问题主要是SUB.命令和 最后IP=0 这个问题。因为你们学过了肯定知道。没学怎么去理解呢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-1 19:39:57 | 显示全部楼层
mov ax,bx  ; 把bx里的值给ax
sub ax,ax   ; 减法指令,就是ax-ax,然后把结果再给ax,即:ax-ax==0  mov ax,0
jmp ax        ; jmp 0

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-2 00:32:27 | 显示全部楼层
谢谢各位大侠的指导··
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-3 16:22:38 | 显示全部楼层
2楼 你大爷的 骂王爽就显示你很牛B吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 19:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表