Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
I8086.DOC
Скачиваний:
50
Добавлен:
02.05.2014
Размер:
1.36 Mб
Скачать
      1. Двоичные числа без знака

Процессор 8086 позволяет обрабатывать одно- и двухбайтовые двоичные числа без знака, покрывающие диапазон от 0 до 255 и от 0 до 65535 соответственно. Двухбайтовые величины называются словами.

Разряды чисел нумеруются слева направо. Таким образом, самый младший бит имеет номер 0, самый старший – 15 для двухбайтового числа и 7 для однобайтового.

В памяти двухбайтовые числа хранятся в порядке “младший – старший”, то есть байт, содержащий младшую часть 16-разрядного числа, занимает ячейку памяти с меньшим адресом, а байт, содержащий старшую часть числа – ячейку памяти с большим адресом.

Команда умножения двух 16-разрядных чисел даёт 32-разрядный результат, а команда деления обеспечивает деление 32-разрядного делимого на 16-разрядный делитель, при этом получаются 16-разрядные частное и остаток. Имеются также операции сдвига, работающие с 32-разрядными числами. 32-разрядные величины представляются двойными словами, состоящими из четырёх байтов.

      1. Двоичные числа со знаком

Двоичные числа со знаком, обрабатываемые микропроцессором 8086, представлены в дополнительном коде, традиционном для всех современных вычислительных машин. Знаковым является старший разряд числа; нуль в этом разряде соответствует нулевому или положительному значению, единица – отрицательному значению. Покрываемый диапазон – от –128 до +127 для байтов и от –32768 до –32767 для слов.

Как и в случае с двоичными числами без знака, команды умножения, деления и сдвига могут иметь своими операндами не только 8- и 16-, но и 32-разрядные числа со знаком.

      1. Символьная информация

Символьная информация хранится в памяти вычислительной машины. Набор строковых операций позволяет одной командой обработать один или два байта памяти, а также организовать повторение строковых команд. Максимальное число повторений – 65536. Из-за особенностей адресации (использования 16-разрядных сегментного адреса и смещения) максимальный размер строки ограничен 65536 символами, хотя счётчик повторений при использовании операций, работающих со словами, позволяет обработать вдвое больший объём данных.

Строковые операции могут выполняться как слева направо (в сторону увеличения адресов), так и справа налево (в сторону уменьшения адресов).

      1. Двоично-десятичные числа

Процессор 8086 не имеет специальных инструкций, выполняющих арифметические операции над двоично-десятичными числами. Однако он предоставляет программисту команды десятичной коррекции операций сложения и вычитания и команды символьной коррекции операций сложения, вычитания, умножения и деления, которые облегчают обработку двоично-десятичных чисел.

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

Один байт двоично-десятичных распакованных данных хранит одну десятичную цифру. Код цифры (от 0 до 9 включительно в шестнадцатеричном виде) находится в младшем полубайте. Значение старшего полубайта при выполнении операций десятичной коррекции (AAA,AAD,AAMиAAS) обнуляется.

В одном байте двоично-десятичных упакованных данных хранятся две десятичные цифры. Старшая цифра занимает старший полубайт, а младшая – младший полубайт. Каждая цифра кодируется шестнадцатеричным значением от 0 до 9 включительно.

Система команд микропроцессора 8086 слабо подходит для обработки двоично-десятичных данных, поэтому в реальных программах соответствующие инструкции и форматы данных используются весьма редко. Математический сопроцессор 8087 в данном случае более удобен, поскольку позволяет обрабатывать одной инструкцией двоично-десятичные упакованные числа с количеством десятичных разрядов 18, однако описание сопроцессора выходит за рамки настоящей книги.