在 ARM 指令集中,我看到了
GT
和 HI
助记符。 “GT”大于且“HI”高于。我觉得两者的意思是一样的。
那么这些助记词有什么区别呢?
助记符 | 状况 | 助记符 | 状况 |
---|---|---|---|
CS | CarrySet | 抄送 | CarryClear |
情商 | Equal(零集) | NE | Not Equal(清零) |
VS | Overflow Set | VC | Overflow Clear |
GT | Greeater Than | LT | LessThan |
通用电气 | G大于或E等于 | LE | L小于或E等于 |
PL | Plus(正) | 米 | Minus(负) |
嗨 | 高高于 | LO | Lower Than(又名 CC) |
HS | H更高或Same(又名CS) | LS | L下或S同名 |
有符号与无符号比较
GT Signed greater than
HI Unsigned higher
HI 指令将其操作数视为无符号,因此基本上它使用 C 和 Z 标志进行操作 另一方面,GT 或 GE 将操作数视为有符号数并使用标志 N(负)和 V(溢出)。 GE 和 GT 是相同的,但 GE 也接受清除的 Z 标志。 因此,如果您使用无符号数字,那么两者都会产生相同的输出。
ARM 文档明确指出
HI 无符号高位 C 置位且 Z 清零
GT 有符号大于 Z 清零,并且 N 置位和 V 置位,或者 N 清零和 V 清零 (Z == 0,N == V)
它们的条件不同。