Главная страница Комбинированное использование портов (B) Мантисса второго операнда помещается в байты ACCbLO и ACCbHI (16 бит), порядок - в ЕХРЬ (8 бит). (C) Вызов F sub. (D) Мантисса результата помещается в байты ACCbLO и ACObLHI (16 бит), порядок - в ЕХРЬ (8 разрядов). Объем занимаемой памяти: 61 ячейка. **************************************t ***********************************tt Умножение: АССЬ (16 битов) ЕХР(Ь) . АССа (16 бит) ЕХРа -> АССЬ (16 битов) ЕХРЬ. (A) Мантисса первого операнда помещается в байты ACCaLO и ACCaHI (16 бит), порядок - в ЕХРа (8 бит). (B) Мантисса второго операнда помещается в байты ACCbLO и ACCbHI (16 бит), порядок - в ЕХРЬ (8 бит). (C) Вызов F nipy. (D) Мантисса результата помещается в байты ACCbLO и ACCbLHI (16 бит), порядок - в ЕХРЬ (8 разрядов). Получение 32-разрядного результата (мантиссы) возможно при замене строки Мос1е16 equ TRUE на Model6 equ FALSE. В этом случае 32-разрядная мантисса результата будет размещена в байты ACCbHI, ACCbLO, ACCcHI, ACCcLO, a порядок - в ЕХРЬ. Объем программной памяти: 102 ячейки. Программа соответствует инструкции по применению AN526 фирмы Microchip. ****************************************************************************
include mpreg.h Hodeie equ TRUE org 0 ; FALSE для умножения с 32-разрядной мантиссой. ************************************************************************* рцчятание чисел с плавающей запятой (АССЬ - АССа -> АССЬ) scloop
******************************* * *******1,**1,1,***1,1r**mt* ********** t*************** Вычитание с двойной точностью (АССЬ - АССа -> АССЬ).
****** *** *** *********************♦****♦*******♦************** ******♦**** .*** tSft bcf STATUS, CARRY btfsc ACCbHI,MSB , bsf STATUS.CARRY shftR shftSL
** ******in,ti,i,m,t ******** tiittttttiitticiitttti,* *********************************** Умножение с плавающей запятой: АССЬ (16 битов) ЕХР(Ь) . АССа (16 битов) ЕХРа -> АССЬ (16 битов) ЕХРЬ. F nipy
neg B decf comf btfsc decf comf btfsc decf comf btfsc decf comf goto ACCcLO ACCcLO STATUS,Z bit ACCcHI ACCcHI STATUS,Z bit ACCbLO ACCbLO STATUS,Z.bit ACCbHI ACCbHI F norm Изменение знака байта АССс. ; Изменение знака байта АССЬ. ; Для 16-ти сдвигов. ; Содержимое байта АССЬ перемещается в ACCd.
; Обнуление байта АССЬ (ACCbLO и ACCbHI). ********************************************************************************* neg A comf ACCaLO ; Изменение знака байта АССа (-АССа -> АССа). incf ACCaLO btfsc STATUS,Z.bit decf ACCaHI comf ACCaHI retlw 0 ******************************************* ********************************* t**************************************************************************t***t Подпрограмма нормализации. Нормализует байт АССЬ для использования в операциях с плавающей запятой. Эта подпрограмма максимизирует мантиссу и уменьшает порядок, что позволяет достичь максимальной точности.
J*************************************************************** ***************** еняеи местами байты АССа и АССЬ [(АССа.ЕХРа) <-> (АССЬ,ЕХРЬ)]. ACCaHI <-> ACCbHI.
ACCaLO <-> ACCbLO. EXPa <-> EXPb. ***********************************************t**t***************************** Тестовая программа. ************************************************** ti,*t****i,i,*t**i,**** *********** Загрузка констант в байты (АССа, ЕХРа) и (АССЬ. ЕХРЬ) для тестирования. ; Загрузка константы 01FF ЕХР(4) в байт АССа.
; Загрузка константы 7FFF EXP(6) в байт АССЬ.
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |