Я пытаюсь найти, как сделать деление в ARM, так как нет команды DIV
. Если это можно сделать умножением числа с плавающей запятой [/9 = *0.09]
, вычитанием или использованием библиотеки. Любой способ подойдет.
В настоящее время я делаю деление с помощью вычитания, используя такой цикл, но я теряю десятичные дроби:
MOV R0,#70 ;Fahrenheit Temperature
SUB R1,R0,#32 ; Subtracting 32
MOV R4,#0 ;Counter
LOOP
ADD R4,R4,#1; Counter+1 ->Is the answer of the division without decimals
SUB R1,#9
CMP R1,#0
BPL LOOP
MOV R1,R4
Итак, в основном, что я делаю, так это то, что у меня есть температура 70, я вычитаю 32 и получаю 38. Затем в цикле я беру 9 каждый раз, пока напоминание не станет меньше 9. Ответ с использованием обычного деления: 4,22222. Здесь я получаю 5. Так что мой результат не такой точный.