汇编网首页登录博客注册
memecha的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2008-01-27 17:26] 检测点2.3

四次修改
(1,取BX的值到AX中的时候
2,sub 的时候,我不知道是什么指令
3,取AX的值和执行后分别变化一次)
最后是0000H)
说明:::::
估计那个SUB好像是减的意思,,所以得出了000h
对那个JMP AX为什么说IP变化两次,我是这样理解的
CPU工作是顺序进行的,,,所以说取了一条指令之后把它先放进了指令缓冲器,这时IP的值加3(按书上的例子的话) 
执行后AX得到值.之后又取值,等下一个值被放入指令缓冲器的时候,IP有增加了,,,,接下来就是像BX中取值.. 
从第一次取指令到第二次取指令这一段才算是完成一次过程,,,,,所以说JMP AX这样的指令IP的值是要变化两次的, 
取值一次,执行一次....呼呼
评论次数(13)  |  浏览次数(725)  |  类型(汇编作业) |  收藏此文  | 

[  starrynight   发表于  2008-01-27 20:40  ]

指令的功能是什么,在这里我们不必深究

这个检测点的主旨是要大家认识感知CPU连续读取和执行指令的过程。

建议博主仔细学习2.10小节

CPU连续读取和执行指令的过程:
(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP = IP + 所读取指令的长度,从而指向下一条指令;
(3)执行指令。 转到步骤 (1),重复这个过程。

[  starrynight   发表于  2008-01-27 20:41  ]

你的表述有误,而且很混乱。

[  游客   发表于  2008-01-27 22:28  ]

那你说...为什么说 jmp ax  这个指令就是IP要变换两次/?
为什么说在执行的时候还要算一次?难道不是我那样理解的吗?不是那样的话那是什么解释?

[  memecha   发表于  2008-01-27 22:28  ]

那你说...为什么说 jmp ax  这个指令就是IP要变换两次/? 
为什么说在执行的时候还要算一次?难道不是我那样理解的吗?不是那样的话那是什么解释?

[  memecha   发表于  2008-01-27 22:32  ]

我2.10已经看了哈几遍了哈...但是哦就是那样理解的..不那样理解的话,,,,怎么才能能够得出上面那个结论啊?

[  startasm   发表于  2008-01-28 08:51  ]

觉得楼主不要被陷在里面了,“为什么说 jmp ax  这个指令就是IP要变换两次/? ”,问题的重点不在这,而是“CPU连续读取和执行指令的过程”;-)

(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器; 
(2)IP = IP + 所读取指令的长度,从而指向下一条指令; ----------这里ip肯定会变吧
(3)执行指令。  
    ----------这里ip是否会变是要看具体的指令的,后面会逐渐学到其他的一些改变ip的指令(不要深究jmp这个指令,主要是理解cpu的执行过程,这里jmp与其他两条指令的唯一不同是可以改变ip的值)

转到步骤 (1),重复这个过程。

[  memecha   发表于  2008-01-28 11:37  ]

(3)执行指令。   
    ----------这里ip是否会变是要看具体的指令的,
那你给我举个例子啊

[  mouse   发表于  2008-01-28 11:42  ]

这个检测点就是最好的例子。

执行mov ax,bx的时候,只改变ax和bx两个寄存器的内容,ip不发上改变。

而指令jmp指令的时候,会改变ip寄存器的内容(把ax的值给ip)

详细的看看2.11和2.12

[  memecha   发表于  2008-01-28 12:20  ]

(执行mov ax,bx的时候,只改变ax和bx两个寄存器的内容,ip不发上改变。)
那你这道题是怎么得出IP变了4次的啊?那按你说的这个不变的话,那只有最后一条指令就变?变了4次? 
[而指令jmp指令的时候,会改变ip寄存器的内容(把ax的值给ip)]
这个我知道会变啊,,但是我是不清楚怎么就说是变两次?本来就是取的石虎变了一次嘛,,,可是人说是执行的时候还变一次,,那我就问了,执行的时候怎么就还变啊?

[  游客   发表于  2008-01-28 12:26  ]

jmp指令就是 更改cs和ip的指令

读取jmp指令 ip自然会改变一次,执行jmp指令过程中,ip又会以 jmp指令的操作数所表达的值 被强制更新一次

[  memecha   发表于  2008-01-28 13:17  ]

[ip又会以 jmp指令的操作数所表达的值 被强制更新一次]
这句还是不懂啊,,,什么操作数啊..举了例子啊///
另外为什么是强制啊?

[  huibian   发表于  2008-02-02 09:33  ]

CPU连续读取和执行指令的过程: 
(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器; 
(2)IP = IP + 所读取指令的长度,从而指向下一条指令; 
(3)执行指令。 转到步骤 (1),重复这个过程。
------
这个执行过程应该没有异议吧。
所以说这三条指令,再执行(1)(2)过程的时候都会更改ip,也就是说更改了3次。

再执行(3)过程的时候,只有jmp指令改变了一次ip,也就是说改了1次。

所以结果是4次更改ip。

[  huibian   发表于  2008-02-02 09:35  ]

[ip又会以 jmp指令的操作数所表达的值 被强制更新一次] 
--------
这里你不用管他,后面就明白了。你只要根据书上的讲解,知道jmp指令会用ax的值更改ip的值就可以了。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码