У меня есть этот фрагмент в моем коде
void jmp_esp()
{
__asm__("jmp *%esp");
}
при компиляции с gcc
gcc aslr.c -o aslr -ggdb -fno-stack-protector -z execstack
я получаю эту ошибку.
aslr.c: Assembler messages:
aslr.c:6: Error: operand type mismatch for `jmp'
Почему эта строкане удалось скомпилировать, хотя инструкция по сборке действительна?
Я читал о DEP (предотвращение выполнения данных).Может быть, эта функция создает эту ошибку компиляции?если да, то как его отключить?