- •Фельдман с. К.
- •Isbn 5-88548-096-6
- •Десятичные ascii Шестнадцатеричные
- •Int 10h ;Вызвать bios
- •Функциональные клавиши Скэн-коды
- •If (Interrupt Flag) — флаг прерывания
- •Адрес в ds Шест. Знач. Номера байтов
- •Move macro tag rep movs&tag endm
- •1. Дамп памяти по адресу или в границах. Синтаксис:
- •2. Дамп памяти по адресу или в границах в коде ascii. Синтаксис:
- •Library file does not exist. Create?
- •Синтаксис Номер и текст сообщения
- •Title Macro File
- •Value dw 10 dup(?)
- •.Radix выражение
- •Формат Функция
- •Inc приемник
- •Imul источник
- •Idiv источник
- •Xor приемник,источник
- •Int substr (src, dest, num, len);
- •Int write_matr(int X, int y, int value);
- •Void main()
- •If(konf_b&0x1000 )
- •Void read_mbr(void); /* Чтение mbr */
- •Add cx,counter
- •Определение Число байтов
- •Include c:convert.Lib
- •Sz * a * p * c (* обозначает неиспользуемые биты)
Sz * a * p * c (* обозначает неиспользуемые биты)
Флаги: Не меняются.
Объектный код: 10011110 (без операндов)
SAL, SAR, SHL и SHR
Сдвиг влево или вправо
Операция: Выполняет сдвиг битов влево или вправо. Данные операции могут выполняться в байте или в слове, в регистре или в памяти. Сдвиг на один бит кодируется в команде значением 1; сдвиг более чем на один бит требует указания регистра CL, который содержит счетчик сдвига.
Команда SAR выполняет арифметический сдвиг, который учитывает знак сдвигаемого значения. Команды SHL и SHR выполняют логический сдвиг и рассматривают знаковый бит как обычный бит данных. Команда SAL выполняется аналогично команде SHL. Команды SAL и SHL сдвигают биты влево определенное число раз и правый освобождающийся бит заполняют нулевым значением.
Команда SHR сдвигает биты вправо определенное число раз и левый освобождающийся бит заполняет нулевым значением. Команда SAR сдвигает биты вправо определенное число раз и левый освобождающийся бит заполняет значением знакового бита (0 или 1). Во всех случаях значения битов, выдвигаемых за разрядную сетку, теряются.
Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF не определен).
SBB
Вычитание с заемом
Операция: Обычно используется при вычитании многословных двоичных величин для учета единичного бита переполнения в последующей фазе операции. В случае, если флаг CF установлен в 1, то команда SBB сначала вычитает 1 из операнда 1. Команда SBB всегда вычитает операнд 2 из операнда 1, аналогично команде SUB.
Флаги: Команда воздействует на флаги AF, CF, OF, PF. SF и ZF.
SCAS/SCASB/SCASW
Поиск байта или слова в строке
Операция: Выполняет поиск определенного байта или слова в строке. Для команды SCASB необходимое значение загружается в регистр AL, а для команды SCASW — в регистр AX. Регистровая пара ES:DI указывает на строку в памяти, которая должна быть сканирована. Данные команды обычно используются с префиксом REPE или REPNE. В случае, если флаг DF равен нулю, то операция сканирует память слева направо и увеличивает регистр DI. В случае, если флаг DF равен единице, то операция сканирует память справа налево и уменьшает регистр DI.
Флаги: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.
Объектный код: 1010111w (без операндов).
STC
Установка флага переноса
Операция: Устанавливает значение флага CF в 1.
Флаги: Команда воздействует на флаг CF (устанавливается в 1).
Объектный код: 11111001 (без операндов).
STD
Установка флага направления
Операция: Устанавливает значение флага направления в 1. В результате строковые операции, такие, как MOVS или CMPS, обрабатывают данные справа налево.
Флаги: Команда воздействует на флаг DF (устанавливается в 1).
Объектный код: 11111101 (без операндов).
STI
Установка флага прерывания
Операция: Разрешает маскируемые внешние прерывания после выполнения следующей команды и устанавливает значения флага прерывания IF в 1.
Флаги: Команда воздействует на флаг IF (устанавливается в 1).
Объектный код: 11111011 (без операндов).
STOS/STOSB/STOSW
Запись однобайтовой или двухбайтовой строки
Операция: Сохраняет байт или слово в памяти. При использовании префикса REP операция дублирует значение байта или слова определенное число раз, что делает ее удобной для очистки областей памяти. Для команды STOSB необходимый байт загружается в регистр AL, а для команды STOSW необходимое слово загружается в регистр АХ. Регистровая пара ES:DI указывает область памяти, куда должен быть записан байт или слово. В случае, если флаг DF равен нулю, то операция записывает в память слева направо и увеличивает регистр DI. В случае, если флаг DF равен единице, то операция записывает в память справа налево и уменьшает значение в регистре DI.
Флаги: Не меняются.
Объектный код: 1010101w (без операндов).
SUB
Вычитание двоичных чисел
Операция: Вычитает байт или слово в регистре, памяти или непосредственное значение из регистра; или вычитает байт или слово в регистре или непосредственное значение из памяти.
Флаги: Команда воздействует на флаги AF, CF, OF, PF, SF и ZF.
TEST
Проверка битов
Операция: Команда выполняет проверку байта или слова на определенную битовую комбинацию. Команда TEST действует аналогично команде AND, но не изменяет результирующий операнд. Операнды могут иметь однобайтовые или двухбайтовые значения. Второй операнд может иметь непосредственное значение. Команда выставляет флаги в соответствии с логической функцией И.
Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF не определен).
WAIT
Установка процессора в состояние ожидания
Операция: Позволяет процессору оставаться в состоянии ожидания, пока не произойдет внешнее прерывание. Данная операция необходима для обеспечения синхронизации процессора с внешним устройством или с сопроцессором. Процессор ожидает, пока внешнее устройство (или сопроцессор) не закончит выполнение операции и на входной линии TEST не появится сигнал (активный уровень).
Флаги: Не меняются.
Объектный код: 10011011
XCHG
Перестановка
Операция: Переставляет два байта или два слова между двумя регистрами (например, XCHG AH,BL) или между регистром и памятью (например, XCHG CX,word).
Флаги: Не меняются.
XLAT
Перекодировка
Операция: Транслирует байты в другой формат, например при переводе нижнего регистра в верхний или при перекодировке ASCII-кода в EBCDIC-код. Для выполнения данной команды необходимо определить таблицу преобразования байт и загрузить ее адрес в регистр ВХ. Регистр AL должен содержать байт, который будет преобразован с помощью команды XLAT. Операция использует значение в регистре AL как смещение в таблице, выбирает байт по этому смещению и помещает его в регистр AL.
Флаги: Не меняются.
Объектный код: 11010111 (без операндов).
XOR
Исключающее ИЛИ
Операция: Выполняет логическую операцию исключающего ИЛИ над битами двух операндов. Операндами являются байты или слова в регистрах или в памяти, второй операнд может иметь непосредственное значение. Команда XOR обрабатывает операнды побитово. В случае, если проверяемые биты одинаковы, то команда XOR устанавливает бит в операнде 1 равным нулю, если биты различны, то бит в операнде 1 устанавливается равным единице.
Флаги: Команда воздействует на флаги CF, OF, PF, SF и ZF (флаг AF неопределен).