//___邏輯取反 !______________________________________________________
非零值取反得到0, 0取反得到1
int i, j;
i = 0x8877;
j = !i;
反匯編代碼:
MOV DWORD PTR SS:[EBP-4], 0X4321
XOR EAX, EAX
CMP DWORD PTR SS:[EBP-4], 0
SETE AL //取標志寄存器中ZF的值, 放到AL中. SETNE取得ZF值后, 取反, 再放到AL中.
MOV DWORD PTR SS:[EBP-8], EAX
XOR EAX, EAX
//___按位取反 ~_______________________________________________________
匯編指令NOT, 將操作數的二進制位取反, 注意操作數的長度.