如果尝试除以0,则函数结果应为0。
org 100h
mov al,b
mov bl,c
mov cl,0
cmp bl,cl
jmp posht;
div bl
mov ah,d
mul ah
mov ah,a
sub ah,al
posht:
mov al,0
ret
a dw 10
b dw 8
c dw 4
d dw 2
zero dw 0
如何使此代码在汇编语言emu8086上工作?
答案 0 :(得分:1)
mov bl,c mov cl,0 cmp bl,cl jmp posht
要在除数恰好为0时实际纾困,您需要将此无条件jmp
更改为有条件的je
(如果相等则跳转)。
在进行(现在允许)除法之前,您仍然需要清空AH
寄存器,因为div bl
指令将对整个AX
进行除法,而不仅仅是{{ 1}}。
您需要重新考虑函数如何报告其结果。目前,无论除数是否为零,AL
都将始终返回等于0的值。您将如何区分?
AL