【发布时间】:2021-04-13 12:51:56
【问题描述】:
如何将一个 32 位十六进制数除以两个 16 位十六进制数并存储它们,使较低的在第一个寄存器中,较高的在第二个寄存器中。
例如,我有一个数据,例如 0xB0B0A0A0,我想在我的代码中提取 0xA0A0 到 R0 和 0xB0B0 到 R1。
【问题讨论】:
-
与使用任何其他语言的变量的方式相同。然后简单地将其翻译成另一种语言(asm)。关于指令、mov 等,您不了解 arm 文档的哪一部分?
-
当你在 C 中实现它并编译它并检查输出时,那些指令你不明白怎么办?
-
感谢您的回答@old_timer。我必须用汇编语言用基本命令对其进行编码,但我会试一试。
-
@fuz Texas Instruments TM4C129XNCZAD 微控制器
-
第一个问题是您遇到算法问题还是编码算法问题?这就是为什么你用你知道的语言解决算法然后简单地将答案移植到新语言。如果您面前没有 arm 架构文档,请停止工作并获取它们。第二个问题是您使用的是哪个指令集 arm 不止一个,获取正确的文档并使用正确的指令集。第三,哪个工具看起来像keil,汇编是特定于工具而不是指令集。您在上面回答的另一个问题是您找到输入的形式是什么...
标签: assembly arm bit-fields