怎么把 汇编代码 转成 机器码

moveax,0040100Fjmpeax;addedx,0x4类似这样。。可能有好几行,把它们转成机器码的代码是什么?我两天也没找到。... mov eax,0040100F
jmp eax;

add edx,0x4
类似这样。。可能有好几行,把它们转成机器码 的代码是什么?
我两天也没找到。
展开
 我来答
百度网友dd2a4ae
2013-02-10 · TA获得超过1.6万个赞
知道大有可为答主
回答量:2628
采纳率:11%
帮助的人:1615万
展开全部
将这些代码写入一个.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
更多追问追答
追问
这样太麻烦,
我要 做的是在 编辑框里打完汇编,就能直接转成机器码
追答
那就直接用Turbo Debugger好了。
程序启动后,在CPU窗口中的代码框部分,直接输入汇编格式的指令,按回车输入以后,它就直接将它转成机器码了,屏幕上可以看到你想要的。

注意两点:
1. Turbo Debugger默认的数值格式是十六进制的,输入时需要注意:
A)输入十进制或二进制数据时,要在最后加上D或B;
B)在输入以D或B结束的十六进制数的时候,最后要加H;
C)输入以字母开头的十六进制数的时候,要先打一个数字0

2. 在TD中直接汇编指令时,不支持标识符。这样,在处理内存变量和转移指令的地址时,要自己处理内存地址,指令中要直接用内存地址,不能使用符号化的变量或标号。
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
匿名用户
2013-02-11
展开全部
用反汇编软件应该能够实现你的要求,比如IDA或者是OD,都能够实现,具体的你可以看看怎么使用此类软件,个人感觉学会这些还是挺有意义的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bafengao
2013-02-12
知道答主
回答量:4
采纳率:0%
帮助的人:5960
展开全部
许多编译器及调试器可以实现此功能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcxsh323
2013-02-09 · TA获得超过1221个赞
知道小有建树答主
回答量:553
采纳率:66%
帮助的人:465万
展开全部
这是编译程序做的工作,不是由你来做的
追问
我知道编译器会做,我有自己的用
我要的是机器码,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式