如何将拇指条件指令放入 IT 块



我正在将一些继承的代码移植到我当前的平台上。当我编译它时,它报告了一些关于 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

最新更新