2

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

我是武装汇编程序的新手,所以我的问题是如何将下面的代码变成IT块。正如编译器所要求的那样。

"movne   r0, r2;\n"
"biceq  r0, r0, #0xff;\n"
"biceq  r0, r0, #0xf00;"

谢谢

4

1 回答 1

4

“IT 块”指的是由单个IT(“If-Then”)指令设定的最多 4 条指令IT虽然那里有两种不同的条件,但它们是逻辑上的对立面,因此由于额外的“Else”编码,它们仍然可以被单个覆盖。一个ne条件后跟两个eq条件,执行它们的适当指令是(I 代表if,然后 T 代表then as movne,E 代表else as biceq,另一个 E 代表else as another biceq):

ITEE   ne
movne  r0, r2
biceq  r0, r0, #0xff
biceq  r0, r0, #0xf00
于 2015-12-09T09:28:31.167 回答