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

Целое двоичное число – это число, закодированное в двоичной системе счисления. Размерность – 8,16 или 32 бита. Знак двоичного числа определяется тем, как интерпретируется старший бит. Среди арифметических команд есть всего две команды, которые действительно учитывают этот разряд как знак – целочисленное умножение и деление imul и idiv. В остальных случаях ответственность за действия с числами со знаком ложится на программиста.

Описание двоичных чисел с фиксированной точкой в сегменте данных выполняется с помощью директив описания данных DB, DW и DD. Например:

. data

per 1 db 23

per 2 dw 9856

per 3 dd 98756432

per 4 dw 2985

Десятичные числа специальный вид представления числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырех бит. При этом каждый байт числа содержит одну или две десятичные цифры в так называемом двоично-десятичном коде (BCD–Binary Coded Decimal). Используются два формата BCD-чисел:

· в упакованном формате каждый байт содержит две десятичные цифры, например число 56704 хранится в трёх байтах:
0000 0101 0110 0111 0000 0100;

· в неупакованном формате каждый байт содержит одну десятичную цифру в четырёх младших битах. Старшие четыре бита имеют нулевое значение. Тоже число 56704 в неупакованном виде будет хранится в 5 байтах: 0000 0101 0000 0110 0000 0111 0000 0000 0000 0100.

Для описания двоично-десятичных цифр в программе используются только две директивы – DB и DT. Например:

. data

per 1 db 2,3,4,6,8,2 ; неупакованное BCD число 286432

per 3 dt 9875645 ; упакованное BCD число 987545