注册 登录
编程论坛 汇编论坛

王爽汇编语言第二版实验8求解

ganbikai 发布于 2011-09-09 21:02, 527 次点击
先上图
只有本站会员才能查看附件,请 登录


上面call s 这条指令对应的 机器码是 e8 05 00
高位是偏移地址  他是补码 所以05 应该是偏移地址 但他是补码  所以要用补码的反向公式求出偏移地址
打开计算器 点16进制 输入5 点二进制  5变成2进制  然后减1 得出结果  然后点计算器上面的字节 然后点 计算机上的NOT  然后点10进制或者 16进制  就是偏移 然后  用当前的IP (执行完 call s 后 当前IP=5)   加上偏移 得出新的IP地址 他就是跳到那个地方 但是 补码05求出来的偏移 10进制居然是251  我肯定我是怎么样 错误了 我把实验8 和之前的一个视频看了半天  前面视频求出来都是对的  就是求这个是错的  请各位能帮忙 让我知道 他 call s后 怎么知道跳转到那里的
4 回复
#2
czsbc2011-09-09 21:18
ip=ip+5
#3
ganbikai2011-09-09 21:31
5是怎么求出来的
#4
czsbc2011-09-09 21:42
e8 05 00
相对位移就是+5
你说的补码是对于负数,如果是-5就是e8 fb ff
#5
ganbikai2011-09-09 22:53
谢谢了 我知道怎么求了

把5变成二进制数 看他第7位是1还是0  是1则是有符号数  必须进行公式 结果是整数 不过加上负号
是0  则是 无负号数  那么他就是绝对值 不用公式  是正数
1