. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(内存访问)
主题 : :
高手进——检测点3.1第二题引发的思考——既然不同的cs:ip组合可以指向同一地址,那么跳转后的cs,ip值怎么确定的呢
[待解决]
回复[
19
次 ] 点击[
996
次 ]
hhuang
[帖 主]
[ 发表时间:2009-05-17 16:38 ]
荣誉值:0
信誉值:0
注册日期:2009-05-15 07:11
这个问题的起源是第三章的检测点1的第二题:在执行完 jmp 0ff0:0100 后,cs、ip的值分别是多少?
本来自然而然地会想到cs:ip的值就是0ff0:0100,偏偏网上所谓的标准答案说是1000:0,当然我也知道,这两种组合都是指向同一个地址的,但计算机给出的结果毕竟是一个确定的寄存器值,而不是模棱两可的结果。
于是,自己debug试了试,结果是0ff0:0100。
看了论坛里关于这道题的其他的几个帖子,好像答案都是1000:0,我想别人的结果应该也是经过debug验证的,难道相同体系结构的计算机的结果都不相同?确定的cs:ip依据是什么?
还有一个问题,当连续的指令序列长度超过64k时,就不光是ip增加了,cs也要变,那么,cs怎么变呢?
请高手指教。hhuang111@163.com
fushijia
[第
2
楼]
[ 回复时间:2009-05-20 22:26 ]
荣誉值:0
信誉值:0
注册日期:2009-05-20 22:23
0ff0:0100
0FF0*16=0FF00(这里的16是10进制的)
0FF00+0100=10000
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved