Я хочу знать, как найти квадратный корень в ассемблере EASy68k.Поиск квадратного корня из числа
Я знаю, что это функция, но я не знаю кода для нее.
Я хочу, чтобы найти квадратный корень из 72.
Ответ должен быть целым, так 8 в этом случае.
Я нашел этот алгоритм:
value-->c1
loop:
value/c1-->c2
(c1+c2)/2-->c1
until c1=c2
c1-->result
Я превращали это в 68k код:
move.w #72,d2 ; value = 64
move.l d2,d5 ; c1 = 64
move.l d5,d3 ; hold d3 = 64
LOOP
divs d2,d3 ; value/c1
move.l d3,d6 ; move answer above to c2 = d6
add.l d5,d6 ; add c1+c2
divs #2,d6
move.l d6,d5 ; move the answer above it do d4 = c1
cmp.l d6,d5
beq loop
move.l d5,d7 ; d7 will have the result
И это не работает по какой-то причине.