2013-07-17 7 views
3

может любой сказать мне смысл следующий:В чем смысл инструкции testb?

GdB> disas 0x080ed5af

0x080ed5ac: мы 0x8 (% EAX),% EAX

0x080ed5af: testb $ 0x10,0x8 (% EAX)

0x080ed5b3: JNE 0x80ed604

0x080ed5b5: мы% еди (% особ)

Что такое мне АНИНГ из testb $ 0x10,0x8 (% EAX)

ответ

7

Он выполняет побитовое И двух операндов (0x10 И 0x8(%eax) (это значение байта, расположенного по адресу, на который указывает %eax + 0x8). Однако ни один из операндов не изменяется, однако команда изменяет флаги, а главное флаг ZF - на 1, если результат AND равен нулю, или 0 в противном случае. Следующий jne выполняет скачок, если ZF равен 0.

+0

Спасибо, sid. Еще одна вещь, если регистр eax имеет нулевое значение, то что будет hppen? gdb> info registers eax 0x0 0 ecx 0x1 1 – vik123

+1

Это создаст панику – vik123

Смежные вопросы