Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОКО - лкВсе.doc
Скачиваний:
31
Добавлен:
16.03.2016
Размер:
3 Мб
Скачать
☆

Регистр флагов

Бит

Название

Расшифровка

Назначение

0

CF

Carry flag

Флаг переноса

1

1

1

Установлен в "1"

2

PF

Parity flag

Флаг четности

3

0

0

Установлен в "0"

4

AF

Auxiliary flag

Флаг вспомогательного переноса

5

0

0

Установлен в "0"

6

ZF

Zero flag

Флаг нуля

7

SF

Sign flag

Флаг знака

8

TF

Trace flag

Флаг трассировки

9

IF

Interrupt flag

Флаг разрешения прерываний

10

DF

Direction flag

Флаг направления

11

OF

Overflow flag

Флаг переполнения

12,13

IOPL

I/O Privilege Level

Уровень привелегий инструкций ввода-вывода

14

NT

Nested Task Flag

Флаг вложенной задачи

15

0

0

Установлен в "0"

16

RF

Resume flag

Флаг возобновления

17

VM

Virtual-8086 Mode

Разрешение виртуального режима процессора 8086

18

AC

Alignment Check

Разрешение проверки выравнивания указателей на ОЗУ

19

VIF

Virtual Interrupt Flag

Виртуальный образ флага IF

20

VIP

Virtual Interrupt Pending

Указывает на наличие необслуженного прерывания

21

ID

Identification Flag

Указывает на поддержку инструкции Команда CPUID

22-31

0

0

Установлены в "0"

Лекция № 7 (90-минут)

Тема: КОДИРОВАНИЕ ОТРИЦАТЕЛЬНЫХ ЧИСЕЛ

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

Ее решают за счет использования особых способов кодирования числовых данных.

Рассмотрим три наиболее распространенных кода, которые применяются на практике: - прямой код; - обратный код; - дополнительный код.

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

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

К кодам выдвигаются следующие требования:

- разряды числа в коде жестко связаны с определенной разрядной сеткой;

- для записи кода знака в разрядной сетке отводится фиксированный, строго определенный разряд.

1. Прямой код. Наиболее естественный код. Формируется следующим образом: в знаковый бит (SX) числа помещают знак числа (0 - если число положительное и 1 - если число отрицательное ), а остальные биты используют для абсолютного значения (модуля) числа. Правило преобразования чисел в прямом коде можно записать так:

. (3.8)

где A - вес старшего разряда в n-разрядной сетке, A=2s-1.

Отображение (s-битных) наборов ( прямой код, верхняя числовая прямая) на числовую ось ( числа, нижняя числовая прямая ) для компьютерной системы показано на рис. 3.3

Рисунок 3.3- Отображение s-битных наборов (прямой код ) на числовую ось

Например:

Десятичное

число

Двоичное

число

Прямой

код

Комментарии

(0(10))

0000(2)

0,000

положительный (0)

(0(10))

0000(2)

1,000

отрицательный (0)

(4(10))

0100(2)

0,100

положительная (4)

(- 4(10))

1100(2)

1,100

отрицательная (4)

(3(10))

0011(2)

0,011

положительная (3)

(- 3(10))

1011(2)

1,011

отрицательная (3)

Диапазон представимых чисел: -(2s-1-1)…(2s-1).

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

2. Обратный код. Обратный ( n - разрядный ) двоичный код положительного целого числа состоит из одноразрядного кода знака (0), за которым следует ( n - 1) разрядное двоичное представление модуля числа, то есть обратный код для положительного числа совпадает с прямым кодом.

Обратный ( n - разрядный ) двоичный код отрицательного целого числа состоит из одноразрядного кода знака (1), за которым следует ( n - 1) разрядное двоичное число, представляющее собой инвертированное (n - 1) разрядное представление модуля числа, то есть для отрицательного числа все цифры числа заменяются на противоположные, а именно ( 1 на 0, а 0 на 1) и в знаковый разряд заносится единица.

Обратный код числа определяется соотношением:

. (3.9)

где B=2s-1=Xmax - максимальное число в n-разрядной сетке.

Отображение (s-битных) наборов ( обратный код, верхняя числовая прямая) на числовую ось ( числа, нижняя числовая прямая ) для компьютерной системы показано на рис. 3.4.

Рисунок 3.4 - Отображение s-битных наборов (обратный код ) на числовую ось

Например:

Десятичное

число

Двоичное

число

Обратный

код

Комментарии

(0(10))

0000(2)

0,000

положительный (0)

(0(10))

1111(2)

1,111

отрицательный (0)

(4(10))

0100(2)

0,100

положительная (4)

(- 4(10))

1011(2)

1,011

отрицательная (4)

(3(10))

0011(2)

0,011

положительная (3)

(- 3(10))

1100(2)

1,100

отрицательная (3)

Диапазон представимых чисел: -(2s-1-1)…(2s-1).

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

Отрицательный момент заключается в том, что существует два представления (0) и при выполнении операций сложения в обратном коде требуется коррекция суммы с помощью циклического переноса единицы переполнения из знаковых разрядов суммы.

3. Дополнительный код. Наиболее распространенный способ представления отрицательных целых чисел в компьютерных системах.

Он позволяет заменить операцию вычитания на операцию сложения, чем упрощает архитектуру компьютерной системы.

Дополнительный код является дополнением числа до некоторого граничного числа (|Xmax+1|=2s).

Дополнительный код положительного числа совпадает с прямым кодом.

Для получения дополнительного кода отрицательного числа существует три способа:

- все цифры модуля исходного числа заменяются на взаимно обратные, то есть производится инверсия всех цифр числа, затем к полученному значению добавляется единица в младшем разряде;

- из модуля числа вычитается (1) младший бит, а затем инвертируются все разряды;

- необходимо записать n-битный модуль числа. Затем просматривать число справа налево, сохранить все младшие нули и первую встретившуюся (1), а остальные биты инвертировать.

Дополнительный код числа определяется соотношением:

. (3.10)

. (3.11)

где - , C = Xгр. равняется весу не существующего в данном числе разряда, расположенного слева от знаковой цифры.

Отображение s-битных наборов ( дополнительный код верхняя числовая прямая) на числовую ось ( числа нижняя числовая прямая ) для компьютерной системы показано на рис. 3.5.

Рисунок 3.5 - Отображение s-битных наборов (дополнительный код ) на числовую ось

Например:

Десятичное

число

Двоичное

число

Дополнительный

код

Комментарии

(0(10))

0000(2)

0,000

положительный (0)

(4(10))

0100(2)

0,100

положительная (4)

(- 4(10))

1100(2)

1,100

отрицательная (4)

(3(10))

0011(2)

0,011

положительная (3)

(- 3(10))

1101(2)

1,101

отрицательная (3)

Диапазон представимых чисел: -(2s-1)…(2s-1).

Свойства дополнительного кода:

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

- любое число в дополнительном коде можно считать младшими битами («хвостом») числа любой длины, если содержимое знакового бита копировать влево. Эта операция называется расширением знака. Используется, когда исходные операнды в операциях сложения и вычитания имеют разную длину.

Свойства кодов:

1. Операции должны выполняться над данными, представленными в одном и том же коде: ПК-ПК, ОК-ОК, ДК-ДК;

2. Положительные числа в ПК, ОК, ДК не меняют своего представления;

3. Результат выполнения операций сложения и вычитания над числами, представленными в ПК, ОК или ДК, являются ПК, ОК или ДК соответственно;

4. Двоичный набор, представляющий (-0) в ПК и ДК, является запрещенной комбинацией;

5. В отличие от ПК, в ОК и ДК нельзя отбрасывать нули после знакового разряда в целой части и нули в конце дробной части отрицательного числа (разрешается отбрасывать 1).

Лекция № 8 (90-минут)