鱼C论坛

 找回密码
 立即注册
查看: 4244|回复: 5

[已解决]作业题求助汇编大佬,如下图

[复制链接]
发表于 2020-6-27 21:04:47 | 显示全部楼层 |阅读模式
5鱼币
机器码和汇编指令如下图所示,第六条机器码的偏移值为什么是F7?
机器码        汇编指令
40                s:inc ax
90                nop
90                nop
BB0200        mov bx,2
43                inc,bx
EBF7                jmp s
90                nop
最佳答案
2020-6-27 21:04:48
通过DEBUG就很明显的可以发现规律,指令也是存储在内存单元中的数据,每条指令虽然长短不一,但是都是8字节存放;
jmp s翻译之后是EB 相对当前IP长度
又因为8086采用的是小端法(低地址存数据低位),从标号s到jmp s指令一共占据了9个内存单元,而一般指令执行顺序是从前到后,但是现在却是向前跳
所以就需要计算一共向前跳几个内存单元(jmp指令本身也算);所以请楼主自行计算下-9的补码。
换言之,我们知道,IP指向的是下一条指令所在内存单元,所以也可以理解成通过jmp指令控制IP跳跃的步数。
最好的体会还是自行修改程序,比如测试不同的s标号点,从后往前或者从前往后跳。
QQ图片20200627210137.jpg

最佳答案

查看完整内容

通过DEBUG就很明显的可以发现规律,指令也是存储在内存单元中的数据,每条指令虽然长短不一,但是都是8字节存放; jmp s翻译之后是EB 相对当前IP长度 又因为8086采用的是小端法(低地址存数据低位),从标号s到jmp s指令一共占据了9个内存单元,而一般指令执行顺序是从前到后,但是现在却是向前跳 所以就需要计算一共向前跳几个内存单元(jmp指令本身也算);所以请楼主自行计算下-9的补码。 换言之,我们知道,IP指向的是下一条指 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-27 21:04:48 | 显示全部楼层    本楼为最佳答案   
通过DEBUG就很明显的可以发现规律,指令也是存储在内存单元中的数据,每条指令虽然长短不一,但是都是8字节存放;
jmp s翻译之后是EB 相对当前IP长度
又因为8086采用的是小端法(低地址存数据低位),从标号s到jmp s指令一共占据了9个内存单元,而一般指令执行顺序是从前到后,但是现在却是向前跳
所以就需要计算一共向前跳几个内存单元(jmp指令本身也算);所以请楼主自行计算下-9的补码。
换言之,我们知道,IP指向的是下一条指令所在内存单元,所以也可以理解成通过jmp指令控制IP跳跃的步数。
最好的体会还是自行修改程序,比如测试不同的s标号点,从后往前或者从前往后跳。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-28 16:02:21 | 显示全部楼层
CodingCat_k 发表于 2020-6-28 15:32
通过DEBUG就很明显的可以发现规律,指令也是存储在内存单元中的数据,每条指令虽然长短不一,但是都是8字节 ...

高手说的很对
40                s:inc ax
90                nop
90                nop
BB0200        mov bx,2
43                inc,bx
EBF7                jmp s

jmp s 的两个字节 到 S:标记处往上数 需要9个字节 所以跳转 -9
补码 9取反加一(二进制)F7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-28 16:57:04 | 显示全部楼层
jhanker 发表于 2020-6-28 16:02
高手说的很对
40                s:inc ax
90                nop

高手谈不上,就是看过一点点汇编
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-28 19:36:58 | 显示全部楼层
CodingCat_k 发表于 2020-6-28 15:32
通过DEBUG就很明显的可以发现规律,指令也是存储在内存单元中的数据,每条指令虽然长短不一,但是都是8字节 ...

666  学习了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-28 19:37:36 | 显示全部楼层
jhanker 发表于 2020-6-28 16:02
高手说的很对
40                s:inc ax
90                nop

都是高手 我是弟弟~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-27 08:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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