我正在学习汇编语言,并试图理解如何将汇编语言转换为机器语言。我试着阅读资料,甚至询问我的教授,但都没有,helpful.This是我正在编写的以下代码:
MOV R10, #63488
LSL R9, R6, #7
STR R4, [R11, R8]
ASR R6, R7, R3我找到了一个ARM到HEX转换器的网站,这是转换:
3EABA0E3
8693A0E1
08408BE7
5763A0E1有人能帮我解释一下这是怎么回事吗?非常感谢!
发布于 2017-02-01 16:14:27
你需要的是ARM ARM (架构参考手册),它可以从Arm的网站上免费获得,尽管你可能需要注册。它包含所有可用指令的编码。
发布于 2017-02-02 10:48:53
Colin的答案基本上就是答案,只是添加了更多的信息。您需要的工具称为汇编器,而不是arm到十六进制转换器。然后,您可以使用反汇编程序来查看它,例如,在使用gnu工具的程序中:
arm-none-eabi-as so.s -o so.o
arm-none-eabi-objdump -D so.o产生
00000000 <.text>:
0: e3a0ab3e mov r10, #63488 ; 0xf800
4: e1a09386 lsl r9, r6, #7
8: e78b4008 str r4, [r11, r8]
c: e1a06357 asr r6, r7, r3处理器如何解释机器代码在ARM ARM中有很好的文档记录,可能从ARMv5 one开始,它是较旧的不太复杂的one。所以谷歌arm架构参考手册,一些人非法地把它们放在那里,或者去infocenter.arm.com上获取真正的。
https://stackoverflow.com/questions/41966878
复制相似问题