一个简单的循环来找到最大的除数,这将是根的整数,在这种情况下,在 345 三角形中的 5 处退出
mov ax,3
mul ax
push ax
mov ax,4
mul ax
pop bx
add ax,bx
push ax ;save 25 decimal for repeated loops
mov bx,1
mov bp,sp
agin
mov dx,0 ;fixed problem
mov ax,[bp] ;25 decimal
inc bx ;starts at 2
div bx
cmp bx,ax
jb agin
out
Run Code Online (Sandbox Code Playgroud)
但是,当程序从 2 变为 3 时发生了奇怪的事情,我得到了 hex555D 而不是 8 (8*3)
将 mov dx,0 放入修复它并使事情恢复正常
我不知道为什么,没有标志改变
有谁知道为什么?这是一个签名/未签名的问题吗?