| fsave |
[Jul. 28th, 2008|08:23 am] |
Читал «New Uses For FSAVE» Роя, подумалось, что инструкцию можно заюзать не только для пересылок. Можно избавиться от многопротивного call 1f;1: pop %ebp; ...:
BITS 32
global main
extern puts, exit
main: fnop
mov eax, esp
sub esp,108
fnsave [esp]
mov ecx, [esp + 12]
mov esp, eax
lea ecx, [ecx + _xs - main]
push ecx
call puts
push byte 1
call exit
_xs db 'NO MORE CALLS',0
|
|
|