Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Вниз

Inline asm: произвол Delphi   Найти похожие ветки 

 
Burmistroff   (2003-05-22 00:40) [0]

Добрый день! Ни кто случайно не знает, как скомпилировать push $00000001?

Все дело в том, что если я пишу напрямую (push $00000001), то после компиляции имею push $01 или push $0001. Суть в том, что получается совершенно другая инструкция процессора, и длинна вносимого в стек числа (?). Я вынужден делать так:
push ebx
mov ebx, $00000001
push ebx
push somthing
call dword ptr[some address] //вызов WinAPI ф-ции
pop ebx
Но это очевидно извращение :)

P.S. я в ASM"е - 0


 
Ihor Osov'yak   (2003-05-22 01:38) [1]


push dword ptr 1


 
theodor_iv   (2003-05-22 10:53) [2]

2 Burmistroff: пиши push 1 -- не ошибешься! Даже если инструкция другая (а она будет выглядеть как $6A/$01), то в стек помещается всегда $00000001.


> Ihor Osov"yak © (22.05.03 01:38)
>
> push dword ptr 1


Работает только в Дельфи 6 и 7. В более ранних версиях компилируется в push dword ptr [ $00000001 ], т.е. поместить в стек двойное слово из памяти по адресу $00000001 -- гарантированный Access Violation.


 
Ihor Osov'yak   (2003-05-22 15:38) [3]

2 theodor_iv © (22.05.03 10:53)

Да уж.. Спасибо за уточнение.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-10348
Dmitriy O.
2003-07-16 07:55
2003.08.04
Программирование это профессия , призвание , болезнь ?


1-10173
Yanis
2003-07-23 01:19
2003.08.04
Как сделать консольную программу?


1-10196
Buffoon
2003-07-19 21:23
2003.08.04
Поиск в StringGrid по первым буквам


1-10299
Pauk
2003-07-22 13:42
2003.08.04
Combobox и размещение DropedDown-списка


7-10479
Ronin
2003-05-24 19:58
2003.08.04
CD-ROM Open?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский