Команды INS, INSB, INSW, INSD
 1134

Команды INS, INSB, INSW, INSD позволяют несколько автоматизировать операции получения данных из порта ввода-вывода. По сути эти команды выполняют команду IN, только результат помещается не в регистр, а в ячейку памяти, адресуемую парой регистров ES:(E)DI, после чего производится сдвиг адреса для записи следующей порции данных в следующую ячейку памяти.

Читать далее
Команды IN и OUT
 9776

Команды IN и OUT используются для работы с внешними устройствами через порты ввода-вывода. Команда IN принимает данные из порта, а команда OUT записывает данные в порт. Номер порта может задаваться как числом от 0 до 255, так и значением регистра от 0 до 65535. Читать из порта или записывать в порт можно как 8-битные, так и 16- и 32-битные данные.

Читать далее
Команды MUL и IMUL
 20886

Команды MUL и IMUL позволяют перемножать два числа. Команда IMUL используется для перемножения чисел со знаком, а команда MUL - для чисел без знака.

Читать далее
Команда HLT
 1207

Команда HLT останавливает работу процессора до прихода очередного прерывания. Используется для случаев когда программе больше нечего делать и она ждет прерывания от внешнего устройства, чтобы продолжить свою работу. Например программа может ожидать, когда с жесткого диска считается нужная порция данных.

Читать далее
Команды ENTER, LEAVE
 3754

Команды ENTER и LEAVE служат для упрощения работы с процедурами, написанными на языках высокого уровня. В таких языках, как C или Pascal обычно при вызове процедуры параметры передаются через стек. Локальные переменные в процедурах также используют стек для хранения своих значений. Рассмотрим подробнее как происходит вызов таких процедур.

Читать далее
Команды DIV, IDIV
 12350

Команды DIV и IDIV позволяют производить целочисленное деление двух чисел. Команда DIV делит числа без знака. Команда IDIV делит числа со знаком.

Читать далее
Команды DEC, INC
 2859

Команды DEC и INC позволяют увеличивать или уменьшать значение операнда на 1. После выполнения операции флаговый регистр устанавливается в соответствии с результатом.

Читать далее
Команды DAA, DAS
 1701

Команды DAA и DAS осуществляют коррекцию упакованных двоично-десятичных чисел после операцй сложения и вычитания. Упакованные двоично-десятичные числа отличаются от обычных двоично-десятичных чисел тем, что каждая цифра числа хранится не в байте, а в соответствующей половине байта. То есть например число 11 будет в упакованном виде записан не как 0101h, а как 11h.

Читать далее
Команды CMPS, CMPSB, CMPSW, CMPSD
 5803

Команды CMPS, CMPSB, CMPSW и CMPSD позволяют производить сравнение строк байтов, двухбайтных слов или двойных слов между собой. Сравнение работает аналогично команде CMP, но с некоторыми дополнительными действиями для строк.

Читать далее
Команда CMP
 3369

Команда CMP позволяет сравнивать между собой любые два числа, находящиеся в регистрах или ячейках памяти. В зависимости от результатов сравнения чисел, процессором выставляются определенные значения регистра флагов.

Читать далее