Юный техник - для умелых рук 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 |