【发布时间】:2021-03-08 15:44:03
【问题描述】:
编写一些代码来测试 CM-23 ARM 汇编指令集,我遇到了关于以下条件跳转的这种奇怪的(对我来说)行为。
00001240: 0x01f0ef80 beq.w 0x2422 <cmp_r0__r1_failed>
包含函数具有以下指令:
- .arch armv8-m.base
- .语法统一
- .code 16
- .thumb_func
从Generic User Guide rev. r1p0 中得知,B{cond} 的使用限制如下 [-256 字节到 +254 字节]。 在这种情况下,有效跳转大约是 0x200,但 .w 后缀应将此范围扩展到至少 16 位领域。
在构建过程中,汇编器没有给出错误/警告,整个过程完成。然后发生硬故障(指向罪魁祸首这样的指令)。
如果我写了一个非法指令,至少我希望汇编器抱怨。
我在这里缺少什么?感谢您提供任何线索。
【问题讨论】:
标签: assembly arm gnu-assembler cortex-m