怎么把 汇编代码 转成 机器码
moveax,0040100Fjmpeax;addedx,0x4类似这样。。可能有好几行,把它们转成机器码的代码是什么?我两天也没找到。...
mov eax,0040100F
jmp eax;
add edx,0x4
类似这样。。可能有好几行,把它们转成机器码 的代码是什么?
我两天也没找到。 展开
jmp eax;
add edx,0x4
类似这样。。可能有好几行,把它们转成机器码 的代码是什么?
我两天也没找到。 展开
4个回答
展开全部
将这些代码写入一个.asm文件,加上必要的程序框架,用汇编程序汇编处理一下就可以得到你要的机器代码了。
因为你列出的这些代码是32位的指令,汇编程序中要加上.386伪指令
以你列出的这三条指令为例,你可以这样写一个程序:
.386
.code
.startup
mov eax, 0040100FH
jmp eax
add edx, 4
end
用TASM汇编程序汇编,在命令行里加上 /l 选项,汇编后查阅生成的.lst文件,可以得到这三条指令的十六进制的机器代码为:
B8 0040100F (按字节拆开是 B8 0F 10 40 00)
FF E0
83 C2 04
因为你列出的这些代码是32位的指令,汇编程序中要加上.386伪指令
以你列出的这三条指令为例,你可以这样写一个程序:
.386
.code
.startup
mov eax, 0040100FH
jmp eax
add edx, 4
end
用TASM汇编程序汇编,在命令行里加上 /l 选项,汇编后查阅生成的.lst文件,可以得到这三条指令的十六进制的机器代码为:
B8 0040100F (按字节拆开是 B8 0F 10 40 00)
FF E0
83 C2 04
更多追问追答
追问
这样太麻烦,
我要 做的是在 编辑框里打完汇编,就能直接转成机器码
追答
那就直接用Turbo Debugger好了。
程序启动后,在CPU窗口中的代码框部分,直接输入汇编格式的指令,按回车输入以后,它就直接将它转成机器码了,屏幕上可以看到你想要的。
注意两点:
1. Turbo Debugger默认的数值格式是十六进制的,输入时需要注意:
A)输入十进制或二进制数据时,要在最后加上D或B;
B)在输入以D或B结束的十六进制数的时候,最后要加H;
C)输入以字母开头的十六进制数的时候,要先打一个数字0
2. 在TD中直接汇编指令时,不支持标识符。这样,在处理内存变量和转移指令的地址时,要自己处理内存地址,指令中要直接用内存地址,不能使用符号化的变量或标号。
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
2013-02-11
展开全部
用反汇编软件应该能够实现你的要求,比如IDA或者是OD,都能够实现,具体的你可以看看怎么使用此类软件,个人感觉学会这些还是挺有意义的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
许多编译器及调试器可以实现此功能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是编译程序做的工作,不是由你来做的
追问
我知道编译器会做,我有自己的用
我要的是机器码,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询