[СП] Справочник команд (Всякие мелочи), страница 2
Описание файла
Файл "[СП] Справочник команд" внутри архива находится в папке "Всякие мелочи". Документ из архива "Всякие мелочи", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "системное программирование" в общих файлах.
Онлайн просмотр документа "[СП] Справочник команд"
Текст 2 страницы из документа "[СП] Справочник команд"
Для 1-байтовых операций один из сомножителей помещается в регистр AL; после выполнения операции произведение записывается в регистр АХ.
Для 2-байтовых операций один из сомножителей помещается в регистр АХ; после выполнения операции произведение записывается в регистры DX:AX (в DX - старшая часть, в АХ - младшая).
Если содержимое регистра АН после 1-байтового умножения или содержимое регистра DX после 2-байтового умножения не равны нулю, флаги CF и OF устанавливаются в 1. В противном случае оба флага сбрасываются в 0.
В качестве операнда-сомножителя можно указывать регистр данных или ячейку
памяти; не допускается умножение на непосредственное значение.
OR Логическое ВКЛЮЧАЮЩЕЕ ИЛИ
Команда OR выполняет операцию логического (побитового) сложения двух операндов. Результат замещает первый операнд (приемник); второй операнд (источник) не изменяется. В качестве операндов можно указывать регистр (кроме сегментного) или ячейку памяти, а в качестве второго еще и непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами. Команда воздействует на флаги OF, SF, ZF, PF и CF, при этом флаги CF и OF всегда сбрасываются в 0.
Правила побитового сложения:
Первый операнд-бит 0 1 0 1
Второй операнд-бит 0 0 1 1
Бит результата 0 1 1 1
POP Извлечение слова из стека
Команда POP пересылает слово из вершины стека (на которую указывает регистр SP) по адресу операнда-приемника. Затем содержимое SP увеличивается на 2 и указывает на новую вершину стека. В качестве операнда-приемника можно использовать любой 16-разрядный регистр (кроме CS) или ячейку памяти. Команда не воздействует на флаги процессора.
PUSH Занесение операнда в стек
Команда PUSH уменьшает на 2 содержимое указателя стека SP и заносит на эту новую вершину содержимое 2-байтового операнда-источника. В качестве операнда-источника может использоваться любой 16-разрядный регистр (включая сегментные) или ячейка памяти. Не допускается занесение в стек непосредственного значения, хотя некоторые трансляторы преобразуют команду вида push 1234h в неэффективную последовательность операций со стеком, результатом которой будет проталкивание указанного операнда в стек. Команда не воздействует на флаги процессора.
REP Повторение
REPE Повторение пока равно
REPZ Повторение пока нуль
REPNE Повторение пока равно
REPNZ Повторение пока не равно
Префиксы повторения позволяют организовать циклическое выполнение команд обработки строк cmps, movs и seas и при этом проверять наличие указанного в префиксе условия.
Префикс rep, будучи установлен перед строковыми командами movs или stos, заставляет их выполняться СХ раз. Префикс гере (и полностью эквивалентный ему префикс repz), будучи установлен перед строковыми командами cmps или seas, заставляет их выполняться до тех пор, пока результат выполнения равен нулю и, соответственно, ZF=1, но не более СХ раз.
Префикс rерnе (и полностью эквивалентный ему префикс repnz), будучи установлен перед строковой командой cmps или seas, заставляет ее выполняться до тех пор, пока результат выполнения не равен нулю и, соответственно, ZF=0, но не более СХ раз.
SAL Арифметический сдвиг влево
'Команда SAL осуществляет сдвиг влево всех битов операнда. Старший бит операнда поступает в флаг CF. Если команда имеет форму SAL операнд, 1 сдвиг осуществляется на 1 бит. В младший бит операнда загружается 0. Если команда записана в формате SAL операнд,CL сдвиг осуществляется на число битов, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда, пройдя через флаг CF, теряются, а младшие заполняются нулями
SAR Арифметический сдвиг вправо
Команда SAR осуществляет сдвиг вправо всех битов операнда. Младший битов операнда поступает в флаг CF. Если команда записана в формате SAR операнд,1 сдвиг осуществляется на 1 бит. Старший бит операнда сохраняет свое значение. Если команда записана в формате SAR операнд,CL сдвиг осуществляется на число битов, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов младшие биты операнда, пройдя через флаг CF, теряются, а старший бит расширяется вправо
SHL Логический сдвиг влево
Команда SHL выполняет те же действия, что и SAL.
SHR Логический сдвиг вправо
Команда SHR осуществляет сдвиг вправо всех битов операнда. Младший бит операнда поступает в флаг CF. Если команда имеет форму SHR операнд, 1 сдвиг осуществляется на 1 бит. В старший бит операнда загружается 0, а младший теряется. Если команда имеет форму SHR операнд,CL сдвиг осуществляется на число битов, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда заполняются нулями, а младшие, пройдя через флаг CF, теряются
TEST Логическое сравнение
Команда TEST выполняет операцию логического И над двумя операндами и в зависимости от результата устанавливает флаги SF, ZF и PF. Флаги OF и CF сбрасываются, a AF имеет неопределенное значение. Состояние флагов можно затем проанализировать командами условных переходов. Команда TEST не изменяет ни одного из операндов.
В качестве операндов можно указывать регистр (кроме сегментного) или ячейку памяти, а в качестве второго операнда - еще и непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами и представлять числа со знаком или без знака.
Правила побитового умножения:
Первый операнд-бит 0 1 0 1
Второй операнд-бит 0 0 1 1
Бит результата 0 0 0 1
Флаг SF устанавливается в 1, если в результате выполнения команды образовалось
число с установленным знаковым битом.
Флаг ZF устанавливается в 1, если в результате выполнения команды образовалось
число, состоящее из одних двоичных нулей.
Флаг PF устанавливается в 1, если в результате выполнения команды образовалось
число с четным количеством двоичных единиц в его битах.
XCHG Обмен данными между операндами
Команда XCHG пересылает значение первого операнда во второй, а второго - в первый. В качестве операндов можно указывать регистр (кроме сегментного) или ячейку памяти, а в качестве второго операнда - еще и непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами со знаком или без знака. Команда не воздействует на флаги процессора.
XLAT Табличная трансляция
Команда XLAT осуществляет выборку байта из таблицы. В регистре ВХ должен находиться относительный адрес таблицы, а в регистре AL - смещение в таблице к выбираемому байту (его индекс). Выбранный байт загружается в регистр AL, замещая находившееся в нем смещение. Длина таблицы может достигать 256 байт. Команда XLAT не имеет явных операндов, но требует предварительной настройки регистров ВХ и AL. Команда не воздействует на флаги процессора.
XOR Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ
Команда XOR выполняет операцию над двумя операндами. Результат операции замещает первый операнд. Каждый бит результата устанавливается в 1, если соответствующие биты операндов различны, и сбрасывается в 0, если соответствующие биты операндов совпадают. В качестве первого операнда можно указывать регистр (кроме сегментного) или ячейку памяти, в качестве второго - регистр (кроме сегментного), ячейку памяти или непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами. Команда воздействует на флаги OF, SF, ZF, PF и CF, причем флаги OF и CF всегда сбрасываются, а остальные флаги устанавливаются в зависимости от результата.
Правила побитового исключающего или:
Первый операнд-бит 0 1 0 1
Второй операнд-бит 0 0 1 1
Бит результата 0 1 1 0