我想编写一个计算 2 个数字的最大公约数的 while 循环。
这是伪代码
Euclid(a, b)
while (b != 0)
{
r = a mod b
a = b
b = r
}
return a
我想编写一个计算 2 个数字的最大公约数的 while 循环。
这是伪代码
Euclid(a, b)
while (b != 0)
{
r = a mod b
a = b
b = r
}
return a
DIV 只接收一个操作数。它将 edx:eax 除以操作数,余数在 edx 中。
div
不接受两个参数。edx:eax
如果它是 32 位值,则除以参数。例如,请参见http://www.posix.nl/linuxassembly/nasmdochtml/nasmdoca.html。
快速修复将是(可以改进,但这是一个开始)
_while:
xor edx,edx
mov eax,ebx
div ecx
mov ebx,ecx
mov ecx, edx
cmp ecx,0
; etc