Page 1 of 1

Структура кода в FASM-приложениях/Code Structure in FASM Applications

Posted: Thu May 07, 2020 9:44 am
by bad_Dr3dd0x
Всем привет.
Начал потихоньку кодить, решил начать с баловства: добавить в explame.asm сис. функцию 3
Врод всё правильно:

Code: Select all

;цикл обработки событий;
mcall 3
но скомпилированная программа не хочет запускаться!
Что делать?

Hello everyone.
He began to code slowly, decided to start with pampering: add sys to explame.asm. function 3
Like everything is correct:

Code: Select all

; event processing loop;
mcall 3 [/ code]
but the compiled program does not want to run!
What to do?

Re: Структура кода в FASM-приложениях/Code Structure in FASM Applications

Posted: Thu May 07, 2020 11:30 am
by Leency
Программирование на языках высокого уровня отличается от ассмеблера следующим: в ассемблере отсутствует сохранение регистров.

mcall 1,2,3,4
аналогичен
mov eax,1
mov ebx,2
mov ecx,3
mov edx,4
int 0x40

Раз ты вставил mcall 3 и все сломалось, значит ты затер регистр eax который использутся дальше по коду.
Сохранить регистры можно вставив

Code: Select all

push eax
mcall 3
pop eax

Re: Структура кода в FASM-приложениях/Code Structure in FASM Applications

Posted: Thu May 07, 2020 12:07 pm
by bad_Dr3dd0x
мда, это значительно сложнее, чем html
и из-за документации тоже