社区
汇编语言
帖子详情
jmp指令的疑惑?
boywang
2003-07-26 01:34:16
77DFE021 EB21 jmp 77DFE044
77DFE855 E99F000000 jmp 77DFE8F9
以上是我用w32Dasm反汇编的代码,为什么同样的jmp指令反汇编成机器码时会有不同的结果呀?
...全文
211
4
打赏
收藏
jmp指令的疑惑?
77DFE021 EB21 jmp 77DFE044 77DFE855 E99F000000 jmp 77DFE8F9 以上是我用w32Dasm反汇编的代码,为什么同样的jmp指令反汇编成机器码时会有不同的结果呀?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xinxinyu2000
2003-07-26
打赏
举报
回复
构造jmp near指令
指令格式:
db 0e9h;(jmp near指令机器码)
dw RelativeOffset(相对偏移量)
所以构造jmp near指令的关键在于计算RelativeOffset
用两个等例子来说明问题:
JmpAddr : jmp Exit JmpAddr: db 0e9
... dw offset Exit-offset JmpAddr+3
... ...
Exit:
nop Exit: nop
RelativeOffset=jmp指令的后一条指令地址 减去 你要跳转的位置地址
而jmp指令的后一条指令地址=offset JmpAddr+3(3是本jmp指令长度)
对于Win32的32位jmp near来说,jmp指令机器玛不变,而长度则为5
因为32位的jmp near的RelativeOffset是32位的(它跳转的相对空间是:-2^31~2^31-1)
xinxinyu2000
2003-07-26
打赏
举报
回复
E9 是段内相对转移指令, 后面跟的是个相对当前指令的下一条指令的地址的偏移量, 不是目标地址的绝对值. 即转移去的目的地址是该指令中的偏移值再加上本转移指令的下一条指令的地址, 也就是说, 如果要 JMP 00481F3C, 这条指令在不同的地方是不同的. 比如:
00401000 E9370F0800 JMP 00481F3C
00401005 ...
因为在win32下e9指令占5个字节, 所以偏移量=目的地址-(转移指令地址+5)=00481f3c-(00401000+5)=00080f37, 输入时LSB在前,MSB在后就是了.
Areslee
2003-07-26
打赏
举报
回复
JMP分远、近跳转,又有直接间接之分,当然不同啊
karach
2003-07-26
打赏
举报
回复
机器不同吧
汇编语言_第2版答案
-
指令
系统包括算术
指令
(如ADD, SUB)、逻辑
指令
(AND, OR)、位操作
指令
(SHL, SHR)、控制流
指令
(
JMP
, CALL, RET)等。 - 理解
指令
系统的功能和用法是编写有效汇编程序的关键。 5. 程序设计: - 汇编语言...
汇编语言程序设计课后答案
2. **
指令
系统**:熟悉不同体系结构(如Intel x86或ARM)的
指令
集,例如常见的MOV(移动)、ADD(加法)、SUB(减法)、
JMP
(跳转)和CALL(调用)等。理解每条
指令
的作用和使用场景。 3. **寄存器使用**:学习如何...
IBM-PC汇编语言程序设计课后习题答案(沈美明))
1. **
指令
系统**:了解80x86架构的
指令
集,包括数据处理
指令
(如ADD、SUB、MUL等)、逻辑运算
指令
(如AND、OR、NOT等)、位操作
指令
(如SHL、SHR等)以及转移
指令
(如
JMP
、CALL、RET等)。 2. **寄存器**:熟悉通用...
微型计算机原理masm5.0
它提供了一套
指令
集,比如MOV(移动数据)、ADD(加法)、SUB(减法)、
JMP
(跳转)、CALL(调用子程序)等,这些
指令
可以直接操纵CPU、内存和寄存器。MASM还支持宏
指令
,允许程序员创建可重用的代码段,提高效率。 ...
汇编语言教程及答案,很详细,有老师课件
5. **程序结构**:学会如何编写流程控制语句,如
JMP
(跳转)、CALL(调用)、RET(返回),以及条件分支,如JE(等于跳转)、JNE(不等于跳转)等。 6. **子程序与宏**:理解和使用子程序(函数)以及宏,可以提高...
汇编语言
21,496
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章