Юный техник - для умелых рук 1989-03, страница 11

Юный техник - для умелых рук 1989-03, страница 11

где Р — значение знакового бита порядка, S — бит знака (если S=0 — число положительное, а если S=1 — отрицательное), е — значение порядка, f — значение мантиссы.

Порядок показывает число двоичных позиций, на которые нужно сдвинуть мантиссу, чтобы число в ячейках памяти было представлено в форме нормализованного числа, которое меньше единицы, с первым значащим разрядом после запятой. Если знак порядка «О», то мантисса сдвигается влево, а если знак порядка «1», то вправо. Диапазон представления чисел в этом случае составляет от 10~35 до 1035.

Подпрограммы библиотеки делятся на основные и обслуживающие. Знакомство с библиотекой мы начнем с последних.

Первая обслуживающая подпрограмма — нормализация мантиссы. Трехбайтное число из ячеек памяти С371Н, С372Н, С373Н извлекается и нормализуется путем поразрядного сдвига мантиссы. При этом сдвиг мантиссы на 1 бит вправо сопровождается увеличением порядка на единицу, а сдвиг мантиссы на 1 бит влево — уменьшением порядка на единицу В результате нормализации в исходные ячейки памяти записывается число, -у которого 14-й разряд мантиссы равен нулю, а 13-й — единице.

Пусковой адрес подпрограммы 092DH.

Вторая обслуживающая подпрограмма производит относительное нормирование двух чисел. Это требуется, например, для сложения чисел в формате с плавающей запятой, когда необходимо, чтобы числа имели равные порядки.

Подпрограмма извлекает из ячеек памяти С371Н, С372Н, С373Н первое число, а из ячеек памяти С374Н, С375Н, С376Н второе и сравнивает их порядки по абсолютному значению. Больший порядок записывается вместо меньшего, а число с меньшим порядком сдвигается вправо без округления на величину, равную разности этих порядков. Пусковой адрес подпрограммы 0877Н.

Третья обслуживающая подпрограмма предназначена для передачи трехбайтного числа из памяти в регистры А — В — С. Начальный ад^ес трехбайтного числа должен находиться в регистровой паре HL. Пусковой адрес ОА8СН.

Четвертая обслуживающая подпрограмма пересылает из регистров А — В — С три байта в ОЗУ по начальному адресу в регистровой паре HL. Пусковой адрес ОА92Н.

Теперь расскажем о подпрограммах арифметических операций.

Сложение чисел.

1. Сложение однобайтных чисел со знаком. Слагаемые находятся по адресам С371Н и С374Н, результат размещается в ячейке ОЗУ С374Н. Пусковой адрес 0849Н.

2. Сложение двухбайтных чисел со знаком. Слагаемые находятся по адресам С372Н, С373Н (первое слагаемое) и по адресам С375Н и С376Н, сумма размещается в ячейки ОЗУ С375Н и С376Н. Пусковой адрес 08DDH.

3. Сложение трехбайтных чисел с плавающей запятой. Первое слагаемое заносится в ячейки С371Н, С372Н, С373Н, а второе слагаемое в ячейки С374Н, С375Н, С376Н, результат сложения помещается в ячейки с адресами С374Н, С375Н, С376Н. Пусковой адрес 0987Н.

Умножение чисел.

1. Умножение двухбайтных чисел со знаком. Сомножители находятся в памяти по адреса*/ С372Н, С373Н и С375Н, СЗ/6Н. Произведение заносится в ячейки С375Н, С376Н. Пусковой адрес 0994Н.

2. Умножение трехбайтных чисел с плавающей запятой. Сомножители заносятся в ячейки памяти С371Н, С372Н и С373Н, а также С374Н, С375Н и С376Н. Произведение находится в ячейках С374Н, С375Н и С376Н. Пусковой адрес 09ЕСН.

Деление чисел.

1. Деление двухбайтных чисел с фиксированной запятой. Делимое и делитель находятся в памяти по адресам С375Н, С376Н, С372Н, С373Н. Частное в ячейках С375Н и С376Н. Пусковой адрес 09F9H.

2. Делзние чисел с плавающей запятой. Делимое находится в адресах С374Н, С375Н, С376Н, делитель в адресах С371Н, С372Н, С373Н. Частное заносится в адреса С374Н, С375Н, С376Н. Пусковой адрес 0A6FH.

Показательная функция.

Показатель степени заносится в ячейку С364 а основание степени в ячейки памяти С371Н, С372Н, С373Н. Результат записывается в ячейки памяти С374Н, С375Н, С376Н. Пусковой адрес 0В08Н.

Логарифмическая функция (натуральный логарифм).

Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции записывается в ячейки ОЗУ С368Н, С369Н, С36АН. Пусковой адрес ОВ6ВНI.

Тригонометрические функции.

1. SIN X (0<Х<nU)- Аргумент заносится в ячейки ОЗУ С361Н, С362Н,

С363Н, а значение функции С355Н, С366Н, С367Н. Пусковой адрес ОС87Н.

2. COS X (0<Х< ГЧ4). Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции С365Н, С366Н, С367Н. Пусковой адрес ОД32Н.

3. TG X (0<Х< «//,). Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции в ячейки С374Н, С375Н, С376Н. Пусковой адрес ОЕ47Н.

4. CTGX (0<Х<«/4). Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции заносится по адресам С374Н, С375Н, С376Н. Пусковой адрес OF61Н.

5. ARC TG X (0<Х<1). Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции С365Н, С366Н, С367Н. Пусковой адрес ОЕ75Н.

6. ARC SIN X, ( — 1<Х J1)- Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции С365Н, С366Н, С367Н Пусковой адрес OD47H.

7. ARC COS X (—1<Х<1). Аргумент заносится в ячейки ОЗУ С361Н, С362Н, С363Н, а значение функции в ячейки С365Н, С366Н, С367Н. Пусковой адрес 0Е40Н.

8. ARC CTG (0<Х<1). Аргумент заносится в ячейки 03V С361Н, С362Н, С363Н, а значение функции в ячейки ОЗУ С365Н, С366Н, С367Н. Пусковой адрес OF8FH.

Листинг библиотечки перепишите в микросхему ПЗУ. Схема ее подключения к компьютеру показана на рисунке.

000000000000000000000000000000000000000000000000000000000000000