- •Конспект лекций по дисциплине
- •Тема:вводная лекция
- •Самостоятельная работа студента заключается в следующем:
- •Подтема №1:базовые понятия и определения компьютерной арифметики и компьютерной системы
- •Подтема №2:базовые понятия и определения компьютерной системы
- •Тема: системы счисления
- •Тема: продолжение лекции №2
- •Тема: перевод чисел из одной позиционной системы счисления в другую
- •Тема: представление числовых данных в компьютерных системах
- •Регистр флагов
- •Тема: выполнение арифметических операций в компьютерных системах над двоичными числами с фиксированной точкой
Регистр флагов
|
Бит |
Название |
Расшифровка |
Назначение |
|
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-минут)
