Основные понятия. Существует множество различных формулировок понятия ЭВМ от достаточно простых и понятных до чрезмерно вычурных, которые, однако, схожи по своей сути. По Э. Таненбауму


Прикладная архитектура процессора Intel 8086



страница6/20
Дата09.08.2018
Размер2.45 Mb.
#43700
ТипРешение
1   2   3   4   5   6   7   8   9   ...   20

Прикладная архитектура процессора Intel 8086


СОДЕРЖАНИЕ



Структура и форматы машинных команд. 11

Организация прерываний 43

Прикладная архитектура процессора Intel 8086 75

1. ТИПЫ И ФОРМАТЫ АППАРАТНО ПОДДЕРЖИВАЕМЫХ ДАННЫХ 75

1.1. ЧИСЛА С ФИКСИРОВАННОЙ ЗАПЯТОЙ 75

1.2. ДИАПАЗОН ПРЕДСТАВЛЕНИЯ ЦЕЛЫХ ЧИСЕЛ 77

1.3. ЧИСЛА С ПЛАВАЮЩЕЙ ЗАПЯТОЙ 80

1.5. ДИАПАЗОН ПРЕДСТАВЛЕНИЯ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ 82

1.6. ТОЧНОСТЬ ПРЕДСТАВЛЕНИЯ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ 84

1.7. ДЕСЯТИЧНЫЕ ЧИСЛА 84

2. РЕГИСТРОВАЯ СТРУКТУРА (ПРОГРАММНАЯ МОДЕЛЬ) ПРОЦЕССОРА 87

2.1. ОБЩЕЕ ПРЕДСТАВЛЕНИЕ 87

2.2. РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ 88

2.3. СЕГМЕНТНЫЕ РЕГИСТРЫ 89

2.4. РЕГИСТР ФЛАГОВ 90

3. ОСНОВНЫЕ РЕЖИМЫ АДРЕСАЦИИ, ИСПОЛЬЗУЕМЫЕ В ЭВМ 92

3.1. КЛАССИФИКАЦИЯ ОСНОВНЫХ РЕЖИМОВ АДРЕСАЦИИ 92

3.2. РЕЖИМЫ АДРЕСАЦИИ ПРОЦЕССОРА INTEL 8086 95

И СПОСОБЫ ИХ ЗАДАНИЯ 95

4. ОСНОВНЫЕ ФОРМАТЫ КОМАНД 99

5. ПРИНЦИПЫ РАЗМЕЩЕНИЯ В ОП ЕДИНИЦ ИНФОРМАЦИИ 102

ФИКСИРОВАННОЙ ДЛИНЫ 102

6.ПРИНЦИПЫ ФОРМИРОВАНИЯ ФИЗИЧЕСКОГО АДРЕСА. 104

1. ТИПЫ И ФОРМАТЫ АППАРАТНО ПОДДЕРЖИВАЕМЫХ ДАННЫХ

В первом приближении информацию, используемую в ЭВМ, можно разделить на команды, адреса и данные.

Под аппаратной поддержкой данных определенного типа, представленных в некотором формате, понимается наличие в системе команд ЭВМ таких команд, которые предназначены для обработки данных этого типа, представленных в соответствующем формате.

Классификация данных см. рис.1.1.



Рис. 1.1. Классификация данных

1.1. ЧИСЛА С ФИКСИРОВАННОЙ ЗАПЯТОЙ

Их деление на 2 типа (дробные и целые) определяется местоположением запятой в числе: слева (перед старшим разрядом) – дробные числа, справа (после младшего разряда) – целые числа.

Дробные числа как таковые в современных ЭВМ не используются. Они используются лишь для представления мантисс в числах с плавающей запятой.

В правильных дробях целая часть нулевая, в неправильных –не нулевая.

Отличие знаковых и беззнаковых чисел состоит в интерпретации крайнего левого (старшего) бита числа. В знаковых целых числах он интерпретируется как знак числа (0 – "+", 1 – "-"), в беззнаковых целых числах – как старшая цифра числа.

Особенностью представления знаковых целых чисел является использование дополнительного кода. Дополнительный код n-разрядного целого числа Х определяется по правилу:


(1.1)
В свою очередь под прямым кодом знакового числа подразумевается его представление в виде:

(1.2)
Во многих литературных источниках предлагается считать, что дополнительный код положительного числа совпадает с его прямым кодом.

Прямой код отрицательного числа образуется путем записи единицы в знаковый разряд и модуля числа в цифровые разряды.


Пример 1.1.а. – Представление чисел [+50] и [-50] в байтном формате (n = 8) в прямом коде.
[+50]ПК = 0.0110010

[-50]ПК = 1.0110010


Прямой код для представления отрицательных чисел в современных ЭВМ не используется, его целесообразно использовать лишь при ручных операциях для проверки корректности отрицательного результата, представленного в дополнительном коде.

Исходя из приведенного выше правила получения дополнительного кода отрицательного числа, необходимо выполнить вычитание модуля числа из константы 2n, представленной единицей в n+1 разряде и n нулями.


Пример 1.1.б. – Представить число [-50] в дополнительном коде.

На принципе, рассмотренном в примере, основывается аппаратная поддержка преобразования чисел из прямого кода в дополнительный или из дополнительного в прямой. В процессоре Intel 8086 это преобразование реализуется с помощью команды NEG (изменение знака). Выполнение этой команды сводится к вычитанию операнда из нуля, что дает такой же результат как в примере 1.1.б.

Для ручного преобразования из прямого в дополнительный код можно использовать один из следующих способов:

1. Инвертирование всех разрядов прямого кода с последующим добавлением единицы в младший разряд.

2. Младшие нули, включая первую младшую единицу, прямого кода сохраняются и в дополнительном коде, а остальные разряды инвертируются.
Примечания:


  1. Если инвертирование распространяется на старший (крайний левый) разряд, интерпретируемый как знак, то преобразование из прямого кода в дополнительный меняет знак числа.

  2. Если инвертирование не распространяется на старший (крайний левый) разряд, интерпретируемый как знак, то преобразование из прямого кода в дополнительный не меняет знак числа.

  3. Преобразование из дополнительного кода в прямой осуществляется по аналогичным правилам, что и преобразование из прямого кода в дополнительный код.



1.2. ДИАПАЗОН ПРЕДСТАВЛЕНИЯ ЦЕЛЫХ ЧИСЕЛ



Диапазон для знаковых чисел:

(1.3)

Диапазон представления целых знаковых чисел (см. формулу 1.3) не симметричен относительно нуля, как бы сдвинут на 1 единицу в отрицательную область, что объясняется тем фактом, что к области положительных чисел относится и ноль. Из этого следует, что максимальное по модулю отрицательное число не имеет аналога в области положительных чисел. Попытка изменения знака у этого числа (например, с помощью команды NEG) приводит к переполнению формата.

Для байтного формата (n = 8) диапазон знаковых целых чисел:

(1.4.а)


Для двухбайтного формата (n = 16) диапазон знаковых целых чисел:


(1.4.б)

Представление границ диапазона знаковых чисел в байтном формате:




10000000

-128 =


7 0


01111111

127 =


7 0

Диапазон для беззнаковых чисел:

(1.5)
Для байтного формата (n = 8) диапазон беззнаковых целых чисел:

Для двухбайтного формата (n = 16) диапазон беззнаковых целых чисел:



Аппаратная поддержка целых чисел как знаковых, так и беззнаковых, осуществляется на уровне арифметических команд, причем в командах сложения ADD и вычитания SUB отсутствует разделение представляемых операндов и, соответственно, результатов на знаковые и беззнаковые целые. Соответствующая интерпретация используемых чисел при программировании на ASSEMBLER возлагается на программиста.

Единственное аппаратное отличие знаковых чисел от беззнаковых проявляется в способе фиксации переполнения при сложении. Для знаковых чисел переполнение фиксируется с помощью флага OF, а для беззнаковых чисел с помощью флага CF. Для команды вычитания флаг OF фиксирует переполнение при знаковой интерпретации чисел. Установка же флага CF при беззнаковой интерпретации свидетельствует о том, что результат вычитания отрицательный (уменьшаемое меньше вычитаемого) и представлен в дополнительном беззнаковом коде.


Пример 1.2. – Выполнить операцию сложения чисел А=59 и В=73 с одинаковыми знаками.
n = 8

|A|=59=(111011)2



|B|=73=(1001001)2
Для знаковой интерпретации полученный результат является некорректным вследствие возникшего переполнения, для беззнаковой интерпретации результат операции корректен.

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



  1. Сравнение знаков операндов и результата.

Если знаки операндов одинаковы, а знак суммы отличается от них – фиксируется переполнение.

  1. Сравнение переносов из старшего цифрового разряда в знаковый и из знакового разряда за пределы формата.

Если один из этих переносов имеет место, а другой отсутствует, то фиксируется переполнение. Именно этот способ используется для фиксации переполнения в процессорах фирмы Intel.
Если при сложении переполнение может иметь место только при одинаковых знаках операндов, то при вычитании - только при разных знаках операндов.

Пример 1.3. - Выполнить операцию вычитания чисел А=59 и В=73 с разными знаками.

Фиксация переполнения в операциях знакового вычитания по аналогии с операцией сложения может осуществляться одним из двух способов:

1. Сравнение знаков операндов и результата.

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




  1. Сравнение заемов из знакового разряда в старший цифровой и в знаковый разряд из-за пределов формата.

Если один из этих заемов имеет место, а другой отсутствует, фиксируется переполнение. Если оба заема либо отсутствуют, либо имеют место, результат знакового вычитания корректен.




Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   20




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница