ЗАМЕЧАНИЕ В процессорах x86 при записи двухадресных команд адрес, куда помещается
результат операции, указывается до запятой. В других ассемблерах может быть
иначе.
Команды можно разделить:
на команды пересылки;
команды преобразования данных — арифметические и логические
операции, сдвиги;
команды передачи управления — переходов безусловных и условных,
вызова и возврата из подпрограммы;
служебные и специальные команды.
Рассмотрим основные команды пересылки данных. Наиболее часто
используемая — mov. Эта двухадресная команда создает копию данных,
находящихся по указанному адресу, в другом месте. Примеры:
mov
ax,bx; копирование содержимого регистра BX в AX
mov
cx,99; занесение 99 (непосредственная адресация) в CX
mov
S1,S2; копирование значения ячейки S2 в ячейку S1
При программировании на ассемблере весьма активно используется
системный стек (см. описание стека как структуры данных в
соответствующем разделе). Для занесения информации на вершину стека
используется команда push, для снятия — pop:
push
99; занесение числа 99 в стек
push dx; сохранение в стеке содержимого регистра DX
pop
dx; снятие с вершины стека значения в регистр DX
В системе команд процессоров x86 есть еще одна весьма полезная пара
команд — pusha и popa. Они не имеют аргументов и предназначены для
занесения текущих значений всех регистров процессора в стек и
восстановления оттуда соответственно. Используются, например, при
вызове подпрограмм. Можно провести параллель между использованием
регистров процессора в этой ситуации и локальных переменных — в
языках высокого уровня.