
22.10.2006, 22:08
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Да защита простенькая, вот только зря не привёл что идёт перед вызовом функции, т.к. если ей передаются параметры через стек, то такой способ может привести к не коректному завершению программы.
Я заметил ты немножко путаешь, хоть и результат правельный, а путаница вот в чём, в джамповых инструкциях есть синонимы, пишутся по разному, но после компиляции результат одинаков, это "e" и "z". Тоесть "je" = "jz" и "jne" = "jnz" тогда "test eax, eax" скорее сравнивает eax не с "1", а с "0" и в этом можно убедиться на примере.
Код:
je @f
@@: jz @f
@@: jne @f
@@: jnz @f
@@:
Можешь скомпилить и посмотреть опкоды этих пар инструкций.
Думаю это кому нибудь пригодиться, я как-то скомпилил свою прогу и когда отлаживал увидел что там другие инструкции, тогда полез в мануал за опкодами, там я это и нашел.
|
|
|