. : : 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
mmloster
[第13楼] [ 回复时间:2012-02-28 22:59 ] 
荣誉值:0
信誉值:0
注册日期:2011-02-19 19:44
题目问的是执行后CS IP的值,而不是你深处出来的值,
很明显,jmp offo:0100  就是修改了CS,IP的值,CS=0ff0  ip=0100
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved