Я не очень разбираюсь в сборке, но я почти уверен, что на x86 есть инструкции с квадратным корнем? Я пытаюсь заставить функцию квадратного корня хорошо работать в пену, и та, которую я нашел, как-то застревает, когда я запускаю ее много раз.
: sqrt-closer ( square guess -- square guess adjustment)
2dup / over - 2 /
;
: sqrt ( square -- root )
1 begin
sqrt-closer dup
while + repeat
drop nip ;