- •Введение
- •Задание 1 Представление целых чисел и чисел с плавающей запятой в различных форматах
- •1.1. Представление чисел в двоично-кодированной форме
- •1.2. Представление целых чисел в форме с фиксированной запятой
- •1.3. Особенности ПредставлениЯ чисел
- •1.4. Представление чисел с плавающей запятой
- •1.5. Представление чисел с плавающей запятой
- •1.6. Представление чисел с плавающей запятой
- •1.8. Определение значения числа с плавающей запятой по его представлению в формате ф2
- •1.9. Определение значения числа с Плавающей запятой по его представлению в формате ф3
- •1.7. Определение значения числа с плавающей запятой по его представлению в формате ф1
- •Задание 2 Сложение целых чисел
- •Пример выполнения задания
- •Задание 3 Вычитание целых чисел
- •Пример выполнения задания
- •Задание 4 Умножение целых чисел
- •Умножение в дополнительных кодах с применением коррекции
- •Умножение в дополнительных кодах без коррекции
- •Задание 5 Деление целых чисел
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Содержание
- •Кафедра вычислительной техники
- •Арифметические основы эвм
Задание 2 Сложение целых чисел
Сложение целых чисел выполняется в байтном формате.
Для заданных чисел А и В выполнить операцию знакового сложения со всеми комбинациями знаков операндов (4 примера).
Для каждого примера:
а) Проставить межразрядные переносы, возникающие при сложении.
б) Дать знаковую интерпретацию операндов и результата. При получении отрицательного результата предварительно преобразовать его из дополнительного кода в прямой.
в) Дать беззнаковую интерпретацию операндов и результата. При получении неверного результата пояснить причину его возникновения.
г) Показать значения арифметических флагов для каждого из примеров.
Сохранив значение первого операнда А, выбрать такое значение операнда В, чтобы в операции сложения с одинаковыми знаками имел место особый случай переполнения формата. Выполнить два примера, иллюстрирующие эти случаи. Для каждого из них – то же, что в п.1.
Сохранив операнд В, подобрать такое значение операнда А, чтобы при сложении положительных операндов имело место переполнение формата, а при сложении отрицательных операндов (таких же по модулю, как и положительных) результат операции был бы корректным. Выполнить два примера, для которых сделать то же, что и в п.1 и дать необходимые пояснения.
Основные положения. При сложении целых чисел с фиксированной запятой с использованием дополнительных кодов знаковый разряд участвует в операции точно так же, как и любой цифровой. При этом знак суммы формируется автоматически путем сложения знаковых разрядов операндов с учетом переноса из старшего цифрового разряда. Перенос из знакового разряда не участвует в формировании результата. Результат операции получается в дополнительном коде.
Арифметические флаги формируются в основном арифметическими командами, определяя результат арифметических операций (точнее, они являются признаками результата). Кроме того, на арифметические флаги оказывают влияние логические команды и команды сдвигов. К арифметическим флагам относятся:
CF – Carry Flag (флаг переноса). В нем фиксируется перенос из старшего разряда при сложении и заем в старший разряд при вычитании. При умножении значение флага CF определяет возможность (CF=0) или невозможность (CF=1) представления результата (произведения) в том же формате, что и сомножители.
С помощью флага переноса фиксируется переполнение при сложении беззнаковых чисел.
PF – Parity Flag – флаг паритета (четности). Он устанавливается при наличии четного числа единиц в младшем байте результата, в противном случае – сбрасывается. Этот флаг используется как аппаратная поддержка контроля по четности (нечетности).
AF – Аuxiliary Carry Flag (флаг вспомогательного переноса). В этом флаге фиксируется межтетрадный перенос при сложении и межтетрадный заем при вычитании. Значение этого флага используется командами десятичной и ASCII-коррекции сложения и вычитания.
ZF – Zero Flag (флаг нуля). Он устанавливается при нулевом результате операции, в противном случае - сбрасывается.
SF – Sign Flag (флаг знака). В него копируется старший (крайний левый) бит результата, интерпретируемый как знак.
OF – Overflow Flag (флаг переполнения). Он устанавливается в командах сложения и вычитания в случае, если результат операции не помещается в формате операндов. При этом как операнды, так и результат интерпретируются как знаковые целые числа. В аппаратную установку этого флага положен принцип фиксации переполнения по сравнению переносов из двух старших разрядов при сложении или заемов в два старших разряда при вычитании. Если один из переносов (заемов) имеет место, а другой отсутствует, то происходит переполнение формата (разрядной сетки).
Варианты заданий приведены в табл. 3 приложения 1.
