Справка по Ассемблерным инструкциям
Если честно, то я не знаю что выкладывадывать. Но я попробую выложить это. Писал всё сам.
Команда cmp
Команда cmp позволяет сравнивать между собой регистры. Результаты этой команды записиваются в флаги-регистры. Эта команда предназначена для выполнения условных переходов (jz,jg и. т. д.)
cmp (первый регистр), (второй регистр)
Команда call
Команда call позволяет выполнить переход, при этом место до перехода помещается в стек
call (адрес, или label)
Команда ret
Команда ret "вытаскивает" из стека адрес (по техническому "возврат из ближней процедуры")(который появляется при помощи команды call) и выполняет адрес который был до перехода + 1 шаг. Такую задачу также выполняют команды retf,retn
Команда push, pop
Эти команды позволяют взаимодействовать со стеком, push - записывает значение, а pop - берёт значение из стека соотвественно.
Команда je, jz - перейти если равно
Команда jne,jnz - перейти если равно
Команда jo - Перейти если будет переполнение (в основном при используется для арефметических операций)
Команда mov - Перенос регистра с одного места на другое (Не путайте с дубликацией регистра)
mov (в),(из)
Команда lea - Выполняет тоже самое что и mov, но появляется возможность изменять регистры
lea (регистр) [Регистр и арефметические действия (+,-)]
Команда syscall - Выполняет системный вызов. аргументы не требуется. Обычно не используется.
Команда sysenter - Тоже самое что и syscall, но эта команда не во всех системах может работать/
Команда int - Одна из извесных команд. генерирует программное прерывание
int (прерывание,например 21h)
Команда int3 - Может использоватся как пустышка, при вызове его программа останавливается и генерирует исключение.
Команда DB - По сути это не команда, предназначена для хранения данных. Может использоватся как пустышка.
DB (данные)
Обратите внимание что не все команды могут быть во всех версиях ассемблера. Например есть синтаксис (AT&T), который сильно отличается от того, что я написал.
Всем хорошего.