Этот вид адресации является дополнением косвенной индексной адресации. Эффективный адрес формируется как сумма трех составляющих: содержимого базового регистра, содержимого индексного регистра и значения поля смещения в команде.
53. Команды пересылки данных
Команды пересылки данных общего назначения
К этой группе относятся следующие команды:
1) mov – это основная команда пересылки данных;
2) xchg – применяют для двунаправленной пересылки данных.
Команды ввода-вывода в порт
Принципиально управлять устройствами напрямую через порты несложно:
1) in аккумулятор, номерпорта – ввод в аккумулятор из порта с номером номе
2) out порт, аккумулятор – вывод содержимого аккумулятора в порт с номером номе
Команды преобразования данных
К этой группе можно отнести множество команд микропроцессора, но большинство из них имеет те или иные особенности, которые требуют отнести их к другим функциональным группам.
Команды работы со стеком
Эта группа представляет собой набор специализированных команд, ориентированных на организацию гибкой и эффективной работы со стеком.
Стек – это область памяти, специально выделяемая для временного хранения данных программы.
Для работы со стеком предназначены три регистра:
1) ss – сегментный регистр стека;
2) sp/esp – регистр указателя стека;
3) bp/ebp – регистр указателя базы кадра стека. Для организации работы со стеком существуют специальные команды записи и чтения.
1. push источник – запись значения источникв вершину стека.
2. pop назначение – запись значения из вершины стека по месту, указанному операндом назначение. Значение при этом «снимается» с вершины стека.
3. pusha – команда групповой записи в стек.
4. pushaw – почти синоним команды pusha. Атрибут разрядности может принимать значение use16 или use32. Р
5. pushad – выполняется аналогично команде pusha, но есть некоторые особенности.
Следующие три команды выполняют действия, обратные вышеописанным командам:
1) popa;
2) popaw;
3) popad.
Группа команд, описанная ниже, позволяет сохранить в стеке регистр флагов и записать слово или двойное слово в стеке.
1. pushf – сохраняет регистр флагов в стеке.
2. pushfw – сохранение в стеке регистра флагов размером в слово. Всегда работает как pushf с атрибутом use16.
3. pushfd – сохранение в стеке регистра флагов flags или eflags в зависимости от атрибута разрядности сегмента (т. е. то же, что и pushf).
Аналогично, следующие три команды выполняют действия, обратные рассмотренным выше операциям:
1) popf;
2) popfw;
3) popfd.
54. Арифметические команды
Такие команды работают с двумя типами:
1) целыми двоичными числами, то есть с числами, закодированными в двоичной системе счисления.
Десятичные числа – специальный вид представления числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырех бит.
Микропроцессор выполняет сложение операндов по правилам сложения двоичных чисел.
В системе команд микропроцессора имеются три команды двоичного сложения:
1) inc операнд – увеличение значения операнда;
2) add операн
3) adc операн
Вычитание двоичных чисел без знака
Если уменьшаемое больше вычитаемого, то разность положительна. Если уменьшаемое меньше вычитаемого, возникает проблема: результат меньше 0, а это уже число со знаком.
После вычитания чисел без знака нужно анализировать состояние флага CF. Если он установлен в 1, то произошел заем из старшего разряда и результат получился в дополнительном коде.
Вычитание двоичных чисел со знаком Но для вычитания способом сложения чисел со знаком в дополнительном коде необходимо представлять оба операнда – и уменьшаемое, и вычитаемое. Результат тоже нужно рассматривать как значение в дополнительном коде. Но здесь возникают сложности. Прежде всего они связаны с тем, что старший бит операнда рассматривается как знаковый.
По содержимому флага переполнения of. Его установка в 1 говорит о том, что результат вышел за диапазон представления знаковых чисел (т. е. изменился старший бит) для операнда данного размера, и программист должен предусмотреть действия по корректировке результата.
Принцип вычитания чисел с диапазоном представления, превышающим стандартные разрядные сетки операндов, тот же, что и при сложении, т. е. используется флаг переноса cf. Нужно только представлять себе процесс вычитания в столбик и правильно комбинировать команды микропроцессора с командой sbb.
Для умножения чисел без знака предназначена команда
Для умножения чисел со знаком предназначена команда
[imul операнд_1, операнд_2, операнд_3]
Для деления чисел без знака предназначена команда div делитель
Для деления чисел со знаком предназначена команда idiv делитель
55. Логические команды
Согласно теории, над высказываниями (над битами) могут выполняться следующие логические операции.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии