Команда JMP - это безусловный переход на адрес, указанный с помощью операнда команды. Переход может быть как ближним, в пределах одного сегмента памяти, так и дальним, межсегментным переходом. Адрес перехода может задаваться как непосредственно с помощью меток, так и с помощью регистра, в котором находится адрес перехода. Также адрес перехода может находиться в ячейке памяти.
Команды JCXZ и JECXZ служат для выполнения перехода в зависимости от состояния регистра CX или ECX. Могут использоваться, например, в циклах, где счетчиком как раз и является регистр CX или ECX.
Команды J<cc> - это набор команд условного перехода. То есть команд, выполняющих переход по адресу при соблюдении каких-либо условий. Синтаксис у этих команд одинаковый - первая буква команды это всегда J, а за ней указывается мнемоническое обозначение условия перехода. Например JZ, JC, JNZ, JNE и т.п.
Команды IRET и IRETD служат для возврата из подпрограммы обработки прерываний. Команда IRET работает с 16-разрядными регистрами, а команда IRETD - с 32-разрядными.
Команда INT производит программный вызов обработчика прерывания. Используется многими операционными системами для вызова своего API. Команда INTO - это то же самое, что и INT 04h, но вызывается только при установленном флаге переполнения OF.
Команды INS, INSB, INSW, INSD позволяют несколько автоматизировать операции получения данных из порта ввода-вывода. По сути эти команды выполняют команду IN, только результат помещается не в регистр, а в ячейку памяти, адресуемую парой регистров ES:(E)DI, после чего производится сдвиг адреса для записи следующей порции данных в следующую ячейку памяти.
Команды IN и OUT используются для работы с внешними устройствами через порты ввода-вывода. Команда IN принимает данные из порта, а команда OUT записывает данные в порт. Номер порта может задаваться как числом от 0 до 255, так и значением регистра от 0 до 65535. Читать из порта или записывать в порт можно как 8-битные, так и 16- и 32-битные данные.
Команды MUL и IMUL позволяют перемножать два числа. Команда IMUL используется для перемножения чисел со знаком, а команда MUL - для чисел без знака.
Команда HLT останавливает работу процессора до прихода очередного прерывания. Используется для случаев когда программе больше нечего делать и она ждет прерывания от внешнего устройства, чтобы продолжить свою работу. Например программа может ожидать, когда с жесткого диска считается нужная порция данных.
Команды ENTER и LEAVE служат для упрощения работы с процедурами, написанными на языках высокого уровня. В таких языках, как C или Pascal обычно при вызове процедуры параметры передаются через стек. Локальные переменные в процедурах также используют стек для хранения своих значений. Рассмотрим подробнее как происходит вызов таких процедур.