Доклад: Арифметические операции с BCD числами

1. ДВОИЧНО-ДЕСЯТИЧНЫЙ ФОРМАТ (BCD)……………………….3

2. Арифметические инструкции…………………………………………..4

2.1. Форматы арифметических данных…………………………………..4

2.2. Арифметические операции и флаги…………………………………5

2.3. Сложение………………………………………………………………6

2.4. Вычитание……………………………………………………………..7

2.5. Умножение…………………………………………………………….8

2.6. Деление…………………………………………………………………9

3. ЛИТЕРАТУРА………………………………………………………….12


1. ДВОИЧНО-ДЕСЯТИЧНЫЙ ФОРМАТ (BCD)

Пусть в некотором примере деления в ASCII-формате было получено частное 00090204. Если сжать это значение, сохраняя только правые цифры каждого байта, то получим 0924. Такой формат называется двоично-десятичным (BCD - Binary Coded Decimal) (или упакованным). Он содержит только десятичные цифры от 0 до 9. Длина двоично-десятичного представления в два раза меньше ASCII-представления.

Заметим, однако, что десятичное число 0924 имеет основание 10 и, будучи преобразованным в основание 16 (т.е. в шест. представление), даст шест.039C.

ПРЕОБРАЗОВАНИЕ ASCII-ФОРМАТА В ДВОИЧНЫЙ ФОРМАТ

Выполнение арифметических операций над числами в ASCII или BCD форматах удобно лишь для коротких полей. В большинстве случаев для арифметических операций используется преобразование в двоичный формат. Практически проще преобразование из ASCII-формата непосредственно в двоичный формат, чем преобразование из ASCII- в BCD-формат и, затем, в двоичный формат:

Метод преобразования базируется на том, что ASCII-формат имеет основание 10, а компьютер выполняет арифметические операции только над числами с основанием 2. Процедура преобразования заключается в следующем:

1. Начинают с самого правого байта числа в ASCII-формате и обрабатывают справа налево.

2. Удаляют тройки из левых шест. цифр каждого ASCII-байта.

3. Умножают ASCII-цифры на 1, 10, 100 (шест.1, A, 64) и т.д. и складывают результаты.

Для примера рассмотрим преобразование числа 1234 из ASCII-формата в двоичный формат:

Десятичное Шестнадцатеричное

H

4 х 1 = 4 4

3 х 10 = 30 1E

2 х 100 = 200 C8

1 х 1000 = 1000 - 3E8 –

Результат: 04D2

Из этого примера видно, что шестнадцатеричное число .04D2 действительно соответствует десятичному 1234.


2. Арифметические инструкции.

2.1. Форматы арифметических данных.

Арифметические операции процессоров 8086/8088 могут выполняться над операндами 4-х типов (таблица 2.1):

1. Двоичные без знака.

2. Двоичные со знаком (целые).

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 221
Бесплатно скачать Доклад: Арифметические операции с BCD числами