
- •1. Обобщенная структурная схема компьютера
- •2. Понятие архитектуры.
- •3. Оценка производительности компьютеров.
- •4. Классификация и краткий обзор современных компьютеров
- •5. Элементная база компьютеров: шифратор, дешифратор, мультиплексор и демультиплексор
- •6. Элементная база компьютеров: триггеры и их классификация
- •7. Эбк: регистры и их классификация
- •8. Эбк: счетчики и их классификация
- •10. Характеристики запоминающих устройств и их условные обозначения
- •11. Размещение зу на системной плате (нету)
- •12. Принцип сегментирования основной памяти компьютера и формирование физического адреса
- •13. Принципы организации современных озу
- •14. Способы адресации информации в компьютере
- •1 5. Архитектура системной платы современного пк
- •16. Структура базового процессора семейства х86 и назначение его выводов
- •17. Регистровая архитектура базового процессора семейства х86
- •18. Регистр флагов базового процессора семейства х86 и функциональное назначение его битов
- •19. Принцип демультиплексирования шины адресов и данных в мп i8086/88
- •20. Системы счисления, используемые в компьютерах и алгоритмы приеобразования из одной сс в другую
- •21. Прямые, обратные, дополнительные коды чисел и их использование в компьютерах
- •22. Представление целых чисел без знака и со знаком
- •23. Представление вещественных чисел
- •24. Представление алфавитно-цифровой информации
- •25. Представление звуковой информации
- •26. Представление визуальной информации
- •27. Форматы кодов информации (чисел и символов), используемые в пк семейства х86
- •28. Алгоритмы сложения и вычитания в комптьютерах целых двоичных чисел без знака и со знаком.
- •29. Алгоритмы слож-я и выч-я двоично-десятичных чисел
- •30. Алгоритмы сл-я и в-я вещественных чисел
- •31. Принципы осуществления в компьютерах операций умножения и деления
- •32. Назначение, определения и характеристики систем прерывания компьютеров
- •33. Классификация запросов прерывания в компьютерах
- •34. Режимы работы систем прерывания современных комптютеров и принципы их реализации
- •35. Особенности и принципы организации обмена информацей с периферийными устройствами
- •36. Принцип организации программно-управляемого ввода/вывода с активным ожиданием
- •37. Принцип организации в компьютерах ввода/вывода по прерыванию
- •38. Принцип организации ввода/вывода через каналы прямого доступа к памяти
- •39. Типовые шины соединения компонентов, используемые в современных компьютерах
- •40. Типовые устройства ввода
- •1. Клавиатура
- •2. Мышь.
- •41. Структура и назначение блоков типового видеоадаптера
- •42. Структура и назначение блоков типовой аудиосистемы
28. Алгоритмы сложения и вычитания в комптьютерах целых двоичных чисел без знака и со знаком.
Операции сложения и вычитания целых чисел без знака.
При осуществлении операций с двоичными целыми числами без знака используется обычная двоичная арифметика, включающая как операцию сложения, так и операцию вычитания, используя только прямые коды чисел. Поскольку операции умножения и деления сводятся к операциям сложения, вычитания и сдвига, то это также справедливо и для них. При этом перенос из старшего разряда при сложении и заем при вычитании сопровождается установкой в 1 флага CF. При сложении, это характеризует переполнение разрядной сетки, а при вычитании – получения отрицательного результата. В этом последнем случае, результат получается представленным в дополнительном коде. Переполнения разрядной сетки при операции вычитания не может быть принципиально.
Отметим, при этом, что при операциях сложения и вычитания целых чисел без знака, флаг OF не определен.
Примеры:
11011011+ 10100011 = 1: 01111110 : В результате операции произошел перенос из старшего разряда. Следовательно, произошло переполнение разрядной сетки и результат является недостоверным. (219 + 163 = 382)
Состояние флагов: ZF=0; AF=0; PF=1; CF=1;
10011001 + 01100011 = 11111100Переноса из старшего разряда нет, результат достоверный. (153+99=252).
Состояние флагов: ZF=0; AF=0; PF=1; CF=0:
11010101- 10110010= 00100011: Результат положителен и представлен в прямом коде.(213 – 178 = 35).
Состояние флагов: ZF=0; AF=0; PF=0; CF=0.
10101110 – 11000110=1: 11101000: Перенос из старшего разряда свидетельствует о том, что уменьшаемое меньше вычитаемого. (Можно сказать, что результат является как бы отрицательным, и представлен в дополнительном коде)
(174 – 198 = −24). Состояние флагов: ZF=0; AF=0; PF=1; CF=1.
Операции сложения и вычитания целых чисел со знаком.
При представлении целых чисел со знаком, старший разряд кода является разрядом знака, в котором положительные числа кодируются 0, а отрицательные – 1. При этом, положительные числа представляются прямым кодом, а отрицательные – дополнительным. Так они хранятся и в оперативной памяти компьютера.
При сложении целых чисел со знаком операция сводится к обычному сложению кодов чисел, включая и знаковый разряд. При осуществлении операции вычитания, код вычитаемого преобразуется в дополнительный код (учитывая и знаковый разряд) и суммируется с кодом уменьшаемого.
Знак результата и в том, и в другом случае определяется автоматически по состоянию знакового разряда. Признак переполнения разрядной сетки результата, в этом случае, определяется функцией неравнозначности переносов в знаковый разряд результата и из его знакового разряда. Если же при осуществлении операции имеются оба этих переноса, или они оба отсутствуют, то переполнения разрядной сетки отсутствует и результат является достоверным.
Для упрощения определения переполнения разрядной сетки сумматора, числа со знаком в современных компьютерах, непосредственно в операционном узле, обрабатываются, будучи представленными, в модифицированных кодах. Модифицированные коды отличаются от обычных кодов только тем, что для знака числа в них выделяется не один, а два разряда. При этом положительные числа характеризуются значением 00 этих разрядов, а отрицательные – 11.
Если же результат операции будет иметь в знаковых разрядах значения 10 или 01, это будет характеризовать отрицательное (10) или положительное (01) переполнение разрядной сетки и результат должен быть признан недостоверным. Это следует из функции неравнозначности указанных выше переносов.
Приведем примеры арифметических операций с числами, представленными в модифицированных кодах.
Примеры:
111001101 + 110101111 = 1: 101111100: (− 51) + (− 81) = (− 132).
Состояние флагов: OF=1; SF=0; ZF=0; AF=1; PF=0; CF=1.
Переноса в знаковый разряд нет, но перенос из знакового разряда есть (знаковые разряды результата 10). Следовательно, имеет место отрицательное переполнение разрядной сетки и результат недостоверный.
2. 001010101 + 001001011 = 010100000 : (+85) + (+ 75) = (+160).
Состояние флагов: OF=1; SF=1; ZF=0; AF=1; PF=1; CF=0.
Перенос в знаковый разряд есть, но переноса из разряда нет (знаковые разряды результата 01). Следовательно, имеет место положительное переполнение разрядной сетки и результат недостоверный.
3. 000010011 + 001001111 = 001100010 : (+ 19) + (+79) = (+98).
Состояние флагов: OF=0; SF=0; ZF=0; AF=1; PF=0; CF=0.
Нет переносов ни в знаковый разряд, ни из знакового разряда (знаковые разряды результата 00). Следовательно, результат достоверный, положительный, в прямом коде
4. 110011110 +111110001 = 1: 110001111: (−98) + (−15) = (−113).
Состояние флагов: OF=0; SF=1; ZF=0; AF=0; PF=0; CF=1.
Есть перенос и в знаковый разряд и из знакового разряда результат достоверный, отрицательный (знаковые разряды результата 11) и представлен в дополнительном коде.
5. 000111011 − 111011011→ 000111011 + 000100101 = 001100000: (+ 59) − (− 37) = (+ 96).
Состояние флагов: OF=0; SF=0; ZF=0; AF=1; PF=1; CF=0;
Переносов в знаковый разряд и из знакового нет (знаковые разряды результата 00). Результат достоверный, положительный, в прямом коде.
6. 110110111 − 001000101→110110111+ 110111011 = 1: 101110010: (− 73) − (+ 69) = (− 142).
Нет переноса в знаковый разряд, но есть перенос из знакового разряда (знаковые результата 10): результат недостоверный, имеет место отрицательное переполнение разрядной сетки.
Состояние флагов: OF=1; SF=0; ZF=0; AF=1; PF=1; CF=1.