Assembly 如何将thumb条件指令放入IT块

Assembly 如何将thumb条件指令放入IT块,assembly,arm,thumb,Assembly,Arm,Thumb,我正在将一些继承的代码移植到我当前的平台。当我编译它时,它报告了一些关于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

我正在将一些继承的代码移植到我当前的平台。当我编译它时,它报告了一些关于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条指令。虽然存在两种不同的情况,但它们在逻辑上是对立的,因此由于附加的“Else”编码,仍然可以由单个
IT
覆盖。当一个
ne
条件后紧跟着两个
eq
条件时,执行它们的合适指令是(I表示if,T表示then as
movne
,E表示else as
biceq
,E表示else as另一个
biceq
):

ITEE   ne
movne  r0, r2
biceq  r0, r0, #0xff
biceq  r0, r0, #0xf00