Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laborator2.doc
Скачиваний:
10
Добавлен:
12.04.2015
Размер:
215.55 Кб
Скачать

2.3 Арифметические команды

Форматы знаковых и беззнаковых чисел на Ассемблере

Таблица

Тип

Беззнаковое

Размер

Знаковое

Размер

DB

028-1

(0255)

-2728-1

(-128127)

DW

0216-1

(065535)

-215215-1

(-3276832767)

DD

0232-1

-232232-1

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

2.3.1 Команды сложения и вычитания

Команды ADDиSUBне делают разницы между знаковыми и беззнаковыми числами, они просто складывают и вычитают биты по законам двоичной арифметики.

Беззнаковое

Знаковое

11111001

249

-7

00000010

2

+2

11111011

251

-5

Двоичное представление результата сложения одинаково для беззнакового и знакового числа. Однако интерпретация беззнаковых и знаковых чисел различна.

Практический интерес представляют ситуации переноса и переполнения при сложении и вычитании, учет которых позволит корректно завершать арифметические команды. Выявление неправильных результатов выполняется путем анализа комбинаций бит регистра флагов СF(переноса/заема),OF(переполнения).

Знаковые числа

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

Таким образом, OF=1 является достоверным признаком некорректного результата при работе со знаковыми числами.

Беззнаковые числа

Для беззнаковых чисел ситуация переноса/заемавозникает в случае, когда возникает перенос/заем из разрядной сетки.Состояние переполнениявозникает, если при сложении беззнаковых чисел возникает перенос.

Таким образом, CF=1 является достоверным признаком некорректного результата на беззнаковых числах для командADD,ADC.

Беззнаковое

Знаковое

CF

OF

11111100

252

-4

00000101

5

+5

00000001

1

1

1

0

(неправильно)

01111001

121

+121

00001011

11

+11

10000100

132

-124

0

1

(неправильно)

11110110

246

-10

10001001

137

-119

01111111

127

+127

1

1

(неправильно) (неправильно)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]