Size: a a a

Ассемблер

2021 June 17

ST

Saenro T in Ассемблер
call 1234
:next instruction

или

push next instruction
jmp 1234
источник

D

Den in Ассемблер
а ну вот я все перепутал
источник

D

Den in Ассемблер
а после отработки того что в 1234 идет ret и в нем закопан leave который копирует bp в sp, sp в ip и переставляет ip на следущий адрес так примерно?
источник

ST

Saenro T in Ассемблер
ESP в EBP в ESP — это enter/leave.
источник

ST

Saenro T in Ассемблер
ret

или

pop eax
jmp eax
источник

D

Den in Ассемблер
значит надо enter leave вручную указывать когда свою функцию пишешь чтоли т.е. ret уже только адрес возврата считывает ?
источник

A

Aleksandr in Ассемблер
pop eip
источник

D

Den in Ассемблер
ну проверил, invoke messagebox у меня сам закрывает стек корректно значит он stdcall?
источник

A

Aleksandr in Ассемблер
stdcall предполагает что стек чистит вызываемый, нет?
источник

D

Den in Ассемблер
в таком формате тоже закрывает корректно я так понял они только скобками отличаются чтоли:
stdcall [MessageBox],0,Text,Caption,MB_OK
источник

D

Den in Ассемблер
ну я ничего не чистил но он чистится значит функция чистит, путаюсь пока  между этими stdcall cdecl fastcall, fastcall это вроде через регистры параметры и функция чистит сама?
источник

D

Den in Ассемблер
message box это из user32.dll?
источник

A

Aleksandr in Ассемблер
да
источник

D

Den in Ассемблер
странно я когда хотябы одну из этих убираю из импорта ничего не компилиться хотя ничего кроме messagebox там нету вроде
kernel32,'KERNEL32.DLL',\
            user32,'USER32.DLL',\
            gdi32,'GDI32.DLL',\
            advapi32,'ADVAPI32.DLL',\
            comctl32,'COMCTL32.DLL',\
            comdlg32,'COMDLG32.DLL',\
            shell32,'SHELL32.DLL',\
            wsock32,'WSOCK32.DLL'
источник

A

Aleksandr in Ассемблер
покажи как убираешь
источник

D

Den in Ассемблер
Ох спасибо! забывал слеш с запятой убрать!
источник

АШ

Алексей Шведов... in Ассемблер
MessageBoxA сам чистит стэк
источник

И

Игорь in Ассемблер
можете просветить по циклам, к примеру пустой цикл грузит процессор в холостую, ну оно и понятно. Внимание вопрос, как в апи реализованно ожидание клавиши например, что он не грузит процессор, как правильно строить цикл?
источник

d

disba1ancer in Ассемблер
Вот зачем в fastcall очистка стеа вызываемым, вообще не понимаю эти соглашения до конца
источник

RG

R G in Ассемблер
зависит от ОС и ее апи
источник