Форум по микроконтроллерам: Вопрос по математике с данными FLOAT в Ассемблере - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Вопрос по математике с данными FLOAT в Ассемблере В руководстве Microchip 00526

#1 Пользователь офлайн   nicmicola 

  • Прибывший
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 30 Ноябрь 18

Отправлено 30 Ноябрь 2018 - 15:21

В руководстве Microchip <a name="OLE_LINK53">00526 дана математика с данными float. В конце дано тестирование ее.

Я попытался применить ее не пошло, перешел к тестированию и вот что у меня вышло.

call loadAB ; result of adding ACCb(EXPb)+ACCa(EXPa)->ACCb(EXPb) = 0x01FF(4) + 0x7FFF(6)

call F_add ; Here Accb = 403F, EXPb = 07

(0x01FF*2^4) + (0x7FFF*2^6) = 0x403F*2^7 = 2105216

8176 + 2097088 = 2105264



call loadAB ; result of subtracting ACCb(EXPb)-ACCa(EXPa)->ACCb(EXPb) = 0x01FF(4) - 0x7FFF(6)

call F_sub ; Here Accb = 7F7F, EXPb = 06

(0x01FF*2^4) - (0x7FFF*2^6) = 0x7F7F*2^6 = 2088896

8176 - 2097088 = -2088912

;

call loadAB ; result of multiplying ACCb(EXPb) * ACCa(EXPa)->ACCb(EXPb) = 0x01FF(4) * 0x7FFF(6)

call F_mpy ; Here ACCb = FF7E, EXPb = 12

(0x01FF*2^4) * (0x7FFF*2^6) = 0xFF7E*2^12 = 267902976

8176 * 2097088 = 17145791488

;

call loadAB ; result of dividing ACCb(EXPb) / ACCa(EXPa)->ACCb(EXPb) with = 0x01FF(4) / 0x7FFF(6)

call F_div ; remainder in ACCc. Here ACCb =4000, EXPb = FA (same as -6)

; ; & the remainder ACCc = 003F

(0x01FF*2^4) / (0x7FFF*2^6) = 0x4000*2^6 = 1048576

8176 / 2097088 = 0.0038987395855586



Что я делаю не правильно?


0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей