Archived
1
0
Fork 0
This commit is contained in:
nihonium 2022-03-21 17:38:38 +03:00
parent f5a87e3e0a
commit 1c59c1d541
Signed by: nihonium
GPG key ID: 0251623741027CFC

29
nasm/notices.md Normal file
View file

@ -0,0 +1,29 @@
# Notices
## X86
* cmovXX (перемещение с условием)
* setXX (установка бита с условием)
* аргументы через стек в обратном порядке
* удаление из стека лежит на вызывающем
* результат работы - в al, ax, eax (стандартные типы)
* дробные - в регистрах сопроцессора
* cdecl (декларация языка Си)
* push/pop - стек
* base pointer - для доступа к локальным переменным
```
printf(str, x, y)
---
push L1
push dword [y]
push dword [x]
push str
call printf
---
after call:
L1: add esp, 12 ; 3 * 4
---
result in eax register (number of printed arguments)
```
* в стек помещается сначала адрес возврата (адрес, откуда вызвали, плюс длина данной инструкции)