/*
* 2012/4/5 12:04 bao yu
*/
操作码 助记符 标志 含义
0x0 0000 EQ Z = 1 相等
0x1 0001 NE Z = 0 不相等
0x2 0010 CS/HS C = 1 无符号数大于或等于
0x3 0011 CC/LO C = 0 无符号数小于
0x4 0100 MI N = 1 负数
0x5 0101 PL N = 0 正数或零
0x6 0110 VS V = 1 溢出
0x7 0111 VC V = 0 没有溢出
0x8 1000 HI C=1,Z=0 无符号数大于
0x9 1001 LS C=0,Z=1 无符号数小于或等于
0xa 1010 GE N = V 有符号数大于或等于
0xb 1011 LT N != V 有符号数小于
0xc 1100 GT Z=0,N=V 有符号数大于
0xd 1101 LE Z=1,N!=V 有符号数小于或等于
0xe 1110 AL 任意 无条件执行(指令默认条件)
0xf 1111 NV 任意 从不执行(不要使用)
EQ : 等于
如果一次比较之后设置了 Z 标志。
NE : 不等于
如果一次比较之后清除了 Z 标志。
VS : 溢出设置
如果在一次算术操作之后设置了 V 标志,计算的结果不适合放入一个 32bit 目标寄存器中。
VC : 溢出清除
如果清除了 V 标志,与 VS 相反。
HI : 高于(无符号)
如果一次比较之后设置了 C 标志并清除了 Z 标志。
LS : 低于或同于(无符号)
如果一次比较操作之后清除了 C 标志或设置了 Z 标志。
PL : 正号
如果一次算术操作之后清除了 N。出于定义'正号'的目的,零是正数的原因是它不是负数...
MI : 负号
如果一次算术操作之后设置了 N 标志。
CS : 进位设置
如果一次算术操作或移位操作之后设置了 C 标志,操作的结果不能表示为 32bit。
你可以把 C 标志当作结果的第 33 位。
CC : 进位清除
与 CS 相反。
GE : 大于或等于(有符号)
如果一次比较之后...
设置了 N 标志并设置了 V 标志
或者...
清除了 N 标志并清除了 V 标志。
GT : 大于(有符号)
如果一次比较之后...
设置了 N 标志并设置了 V 标志
或者...
清除了 N 标志并清除了 V 标志
并且...
清除了 Z 标志。
LE : 小于或等于(有符号)
如果一次比较之后...
设置了 N 标志并清除了 V 标志
或者...
清除了 N 标志并设置了 V 标志
并且...
设置了 Z 标志。
LT : 小于(有符号)
如果一次比较之后...
设置了 N 标志并清除了 V 标志。
或者...
清除了 N 标志并设置了 V 标志。
AL : 总是
缺省条件,所以不用明显声明。
NV : 从不
不是特别有用,它表示应当永远不执行这个指令。是穷人的 NOP。
包含 NV 是为了完整性(与 AL 相对),你不应该在你的代码中使用它。