|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
STATUS_ILLEGAL_INSTRUCTION
При выполнении кода try finally но только в асме, возникает ошибка STATUS_ILLEGAL_INSTRUCTION.
Код Код:
014C0000 E801000000 call $014c0006 014C0005 C3 ret 014C0006 55 push ebp 014C0007 89E5 mov ebp,esp 014C0009 31C0 xor eax,eax 014C000B 55 push ebp 014C000C 682B004C01 push $014c002b 014C0011 64FF30 push dword ptr fs:[eax] 014C0014 648920 mov fs:[eax],esp 014C0017 CC int 3 ; внутри try 014C0018 31C0 xor eax,eax 014C001A 8B00 mov eax,[eax] 014C001C 31C0 xor eax,eax 014C001E 5A pop edx 014C001F 59 pop ecx 014C0020 59 pop ecx 014C0021 648910 mov fs:[eax],edx 014C0024 6836004C01 push $014c0036 014C0029 CC int 3 ; finally 014C002A C3 ret 014C002B FF2519004B01 jmp dword ptr [$014b0019] ; system.@HandleException 014C0031 E9F3FFFFFF jmp $014c0029 014C0036 89EC mov esp,ebp 014C0038 5D pop ebp 014C0039 C3 ret При исполнении этого кода, например в процедуре нажатия кнопки, все ок, при выполнении в выделенном куске памяти вылетает ошибка STATUS_ILLEGAL_INSTRUCTION. Валится при отработке исключения, т.е. оно как бы обрабатывается, но вместо того, чтоб прыгнуть в finally вылезает еще один эксепшн. Что за мистика? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |