Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Директива extrn режимы ideal, masm

Поиск
EXTRN определение[,определение]. Указывает, что идентификатор определен в другом модуле. Оп- ределение описывает идентификатор и имеет следующий формат: [язык] имя[счетчик_1]:тип[:счетчик_2] где "язык" задает, что к идентификатору с указанным именем должны применяться соглашения заданного языка (C, PASCAL, BASIC, FORTRAN, ASSEMBLER или PROLOG). "Имя" - это идентификатор, кото- рый определен в другом модуле и за которым может следовать "счет- чик_1", множитель элемента массива, значение которого по умолча- нию равно 1. "Тип" должен соответствовать типу идентификатора, указанному при его определении, и может быть следующим: NEAR, FAR, PROC, BYTE, WORD, DWORD, DATAPTR, CODEPTR, FWORD, PWORD, QWORD, TBYTE, ABS или именем структуры. Значение "счетчика_2" за- дает, сколько элементов определяет данный внешний идентификатор. Если оно не задается, то по умолчанию равно 1.

 

Блок-схема подсчета выражения: y=10x

 


5. ВСD –числа. Упакований та неупакований формат. Задавання ВСD чисел у програмі. Алгоритм виведення на екран дійсного числа, що зберігається у регістрі ST(0) сопроцесору у форматі?,*********Е+*.

 

FBSTP BCD_Mantisa; Записываем мантиссу как ВСD число в переменную

 

BCD - сокращение от binary coded decimal, т.е. двоично кодированное десятичное число. Это когда либо в тетрадах (упакованное BCD), либо в целом байте (неупакованное BCD) лежит десятичная цифра 0-9. Значения 0ah-0fh - недействительны. Для выполнения арифметических команд с такими числами есть специальные команды приведения формата опять к BCD

 

 

. Двоично-десятичный код, binary-coded decimal, BCD, 8421-BCD — форма записи целых чисел, когда каждый десятичный разряд числа записывается в виде его четырёхбитного двоичного кода. Например, десятичное число 31110 будет записано в двоичной системе счисления в двоичном коде как 1 0011 01112, а в двоично-десятичном коде как 0011 0001 0001BCD.

Преимущества и недостатки

]Преимущества

§ Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.

§ Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.

§ Упрощены умножение и деление на 10, а также округление.

По этим причинам двоично-десятичный формат применяется в калькуляторах — калькулятор в простейших арифметических операциях должен выводить в точности такой же результат, какой подсчитает человек на бумаге.

Недостатки

§ Требует больше памяти.

§ Усложнены арифметические операции. Так как в 8421-BCD используются только 10 возможных комбинаций 4-х битового поля вместо 16, существуют запрещённые комбинации битов: 1010(1010), 1011(1110), 1100(1210), 1101(1310), 1110(1410) и 1111(1510).

Поэтому, при сложении и вычитании чисел формата 8421-BCD действуют следующие правила:

1. При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110 (= 610 = 1610 - 1010: разница количеств комбинаций полубайта и используемых значений).

2. При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация, необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты.

3. При вычитании двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего полубайта, необходимо провести коррекцию, отняв значение 0110.

Микропроцессор хранит BCD-числа в двух форматах (рис. 1):

– упакованный формат – каждый байт содержит две десятичные цифры. Десятичная цифра представляет собой двоичное значение в 4 бита. Диапазон представления десятичного упакованного числа в одном байте составляет от 0 до 99;

– неупакованный формат – каждый байт содержит одну десятичную цифру в четырёх младших битах. Старшие четыре бита имеют нулевое значение и называются зоной. Диапазон представления десятичного неупакованного числа в одном байте составляет от 0 до 9.

Рис. 1. Представление BCD- чисел.

 

Для того, чтобы описать BCD- числа в программе необходимо использовать директивы описания и инициализации данных – db и dt. К примеру (dt - 10 байт):

.data

Per_1 db 2,3,4,5,6,8,2;02 03 04 05 06 08 02

Per_2 dt 9875645; 00 00 00 00 00 00 98 75 64 05


Неупакованные BCD-числа

Пример1: Результат сложения не больше 9. 6+3

6=0000 0110

+

3=0000 0011

=

9=0000 1001 – результат правильный.

Пример2: Результат сложения больше 9.

06=0000 0110

+

07=0000 0111

=

13=0000 1101 – результат неправильный.

Правильный результат в неупакованном BCD-формате:

0000 0001 0000 0011

1 3

 

Пример описания BCD-чисел:

Oper_1 DB '295';BCD-число 592 в ASCII- формате

Oper_2 DB 2,9,5;BCD-число 592 в неупакованном формате

Oper_3 DB 2h,59h;Упакованное BCD-число 5902

Oper_4 DT 592;Упакованное BCD- число 00 00 00 00 00 00 00 00 59 02, занимающее 10 байт в памяти (старший байт отведён для кодирования знака: 80h (1000 0000b)- отрицательное число, 00h- положительное).

 

Алгоритм для получения представления действительного числа в памяти ЭВМ:

1. перевести модуль данного числа в двоичную систему счисления;

2. нормализовать двоичное число, т.е. записать в виде M × 2 p, где M — мантисса (ее целая часть равна 1(2)) и p — порядок, записанный в десятичной системе счисления;

3. прибавить к порядку смещение и перевести смещенный порядок в двоичную систему счисления;



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 407; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.232.215 (0.009 с.)