Assembly 统一语法中不推荐使用条件中缀

Assembly 统一语法中不推荐使用条件中缀,assembly,arm,conditional,predicate,gnu-assembler,Assembly,Arm,Conditional,Predicate,Gnu Assembler,如何为ARM Thumb汇编器重做“条件中缀” GNU Tools ARM(thumb)汇编程序在以下指令集的输出中出现错误“统一语法中不推荐使用条件中缀”: IT PL MOVPL r14,#0x80000000 @ r14=0x80000000 或 或 也许它希望您编写movsvs(谓词最后,在s之后)?@PeterCordes是正确的,对于GNU汇编程序,s不是最后一个。然而,我注意到Keil可能不是这样工作的,我在一本书中看到,建议把S作为最后一个,他们专门

如何为ARM Thumb汇编器重做“条件中缀”

GNU Tools ARM(thumb)汇编程序在以下指令集的输出中出现错误“统一语法中不推荐使用条件中缀”

    IT PL
    MOVPL   r14,#0x80000000     @ r14=0x80000000


也许它希望您编写
movsvs
(谓词最后,在
s
之后)?@PeterCordes是正确的,对于GNU汇编程序,
s
不是最后一个。然而,我注意到Keil可能不是这样工作的,我在一本书中看到,建议把
S
作为最后一个,他们专门谈论Keil。Arm文档通常更喜欢Keil,就像他们在2005年购买的一样。我想说的是,您可能正在阅读文档/手册,这些文档/手册可能在许多方面适合GNU汇编程序,而不是GNU汇编程序。有些情况下,这些信息无法应用于GNU汇编程序,这可能是其中之一。例如“Arm汇编语言编程与体系结构-第二版”Muhammad Ali Mazidi等人于2016年在第152页陈述了以下内容:
注意“S”后缀和条件后缀相互独立。我们可以在指令的操作码中添加“S”和条件后缀。在条件后面加上“S”是很常见的。
。在第9页,我们在本书中的程序中使用了Keil编译器。因此他们将其用于示例程序,但本质上,他们的ISA描述(以及文档中的非示例部分)仅从Keil的角度进行。此外,还存在更改语法的情况,例如,第25页:
请注意,在像ADD和SUB这样的大多数指令中,如果Rd和Rn相同,则可以省略Rn。统一汇编语言不再推荐这种格式。
。因此,您可以看到一些根本不适用于您的工具链的建议,我们的建议是在某个时候被推荐的,但现在不再适用了。
    IT VS
    MOVVSS  r7,r14              @ DiffR=SAT(R-RightDC)
    IT VS
    MOVVSS  r6,r14              @ DiffL=SAT(L-LeftDC)