这个程序为什么不能输出结果
;w=(v-(x*y+z-460))/xDATA SEGMENT
x equ -1
y equ -2
z equ -3
v equ -4
w dw 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
;ax<=x*y
mov al,x
mov dl,y
imul dl
;ax<=x*y+z-460
add ax,z
sub ax,460
;ax<=v-(x*y+z-460)
mov dx,ax
mov ax,v
cbw
sub ax,dx
;(v-(x*y+z-460))/x
cwd ;可能存在商溢出所以扩展为双字
mov bx,x
idiv bx
jo o ;除0溢出
mov word ptr w,ax
o:
MOV AH,0
INT 16H
mov ax,04c00h
int 21h
CODE ENDS
end start
上面这个程序为什么不能输出结果,怎么改啊