3
任何一個可以告訴我下面的意思:testb指令是什麼意思?
GDB> disas 0x080ed5af
0x080ed5ac:MOV 0x8中(%eax中),%EAX
0x080ed5af:TESTB $ 0x10,0x8(%EAX )
0x080ed5b3:JNE 0x80ed604
0x080ed5b5:MOV%EDI(%ESP)
什麼是我TESTB $ 0x10,0x8(%eax中)的安寧
任何一個可以告訴我下面的意思:testb指令是什麼意思?
GDB> disas 0x080ed5af
0x080ed5ac:MOV 0x8中(%eax中),%EAX
0x080ed5af:TESTB $ 0x10,0x8(%EAX )
0x080ed5b3:JNE 0x80ed604
0x080ed5b5:MOV%EDI(%ESP)
什麼是我TESTB $ 0x10,0x8(%eax中)的安寧
它執行按位與兩個操作數(0x10
AND 0x8(%eax)
(這是,位於該地址處的字節的值由%eax
+ 0x8中)指向。兩個操作數都沒有改變,但是,指令改變標誌,最重要的是ZF標誌爲1,如果AND的結果爲零,否則爲0。如果ZF等於0,則以下jne
執行跳轉。
謝謝sid。還有一件事,如果eax寄存器具有空值,那麼將會發生什麼? gdb> info寄存器eax 0x0 0 ecx 0x1 1 – vik123
是否會產生恐慌 – vik123