1
一個簡單的循環來找到最大的除數,這將是根的整數,在這種情況下在345三角形在5脫落爲什麼mov dx,0修復這個除法程序?
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
然而,奇怪的事情發生時,程序從2變爲3,我得到了hex555D而不是8(8 * 3)
把MOV DX,0固定它,回到事物正常
我不知道爲什麼,沒有任何標誌改變
誰知道爲什麼?這是一個簽名/未簽名的問題?
乾杯。我從來不知道以前的一個部門的其餘部分可以做到這一點(所以它在16位模式下工作就像一個32位操作) – ady
這也是爲什麼有「CWD」指令!它有助於支持這些大型拆分註冊操作。 –