我正在将一些继承的代码移植到我当前的平台上。当我编译它时,它报告了一些关于 arm 汇编器代码的错误。
该消息显示:
| {standard input}:7236: Error: thumb conditional instruction should be in IT block -- `movne r0,r2'
| {standard input}:7237: Error: thumb conditional instruction should be in IT block -- `biceq r0,r0,#0xff'
| {standard input}:7238: Error: thumb conditional instruction should be in IT block -- `biceq r0,r0,#0xf00'
我是 arm 汇编器的新手,所以我的问题是如何将以下代码制作成IT
块。正如编译器所要求的那样。
"movne r0, r2;n"
"biceq r0, r0, #0xff;n"
"biceq r0, r0, #0xf00;"
谢谢
"IT 块"是指最多 4 条指令由单个IT
("If-Then"(指令作为条件。虽然你有两个不同的条件,但它们在逻辑上是相反的,所以由于额外的"Else"编码,仍然可以被单个IT
覆盖。对于一个ne
条件后跟两个eq
条件,处理它们的适当指令将是(I 表示 if,然后 T 表示 then 作为 movne
,E 表示 else 作为 biceq
,另一个 E 表示 else 作为另一个biceq
(:
ITEE ne
movne r0, r2
biceq r0, r0, #0xff
biceq r0, r0, #0xf00