【发布时间】:2019-04-23 14:24:57
【问题描述】:
我知道之前有人问过这个问题,很抱歉再次问,但我不知道如何解决它。在我的程序开始时,我尝试将二进制值 101000110000100110000 移动到 R0 中,但我收到错误消息“错误:修复后无效常量 (146130)”
.global _start
_start:
mov R0,#0b101000110000100110000
bl correct16
mov R7,#1
svc 0
correct16:
push {R1-R10}
我真的不明白它为什么会这样或如何解决它,因为我以前从未遇到过这个错误。
【问题讨论】:
-
查阅指令集参考,特别是
mov的允许立即数范围。 TL;DR:使用ldr r0, =0b101000110000100110000PS:下次指定您使用的汇编程序