From 1c59c1d541ad3270060ea3f371a59b48edf69bb6 Mon Sep 17 00:00:00 2001 From: nihonium Date: Mon, 21 Mar 2022 17:38:38 +0300 Subject: [PATCH] notices --- nasm/notices.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 nasm/notices.md diff --git a/nasm/notices.md b/nasm/notices.md new file mode 100644 index 0000000..85057a1 --- /dev/null +++ b/nasm/notices.md @@ -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) +``` +* в стек помещается сначала адрес возврата (адрес, откуда вызвали, плюс длина данной инструкции)