Ich versuche, Code für ein Programm zu schreiben, um den Durchschnitt eines Arrays zu berechnen, aber ich bekomme die Division durch Null Fehler, ich googelte den Fehler und es scheint, dass es ein Divisionsüberlauf ist, aber ich tat es nicht verstehe, was ich in meinem Programm tun soll. Hier ist mein Code:Assembly Divide von Null
`DATA SEGMENT
msg1 db 0dh,0ah,"Please enter the length of the array: $"
msg2 db 0ah,0ah,"Enter number: $"
msg3 db 0dh,0ah,"Array average is: $"
val db ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
mov ax,data
mov ds,ax
mov dx,offset msg1
mov ah,09h
int 21h
mov ah,01h
int 21h
sub al,30h
mov bl,al
mov cl,al
MOV AL,00
MOV VAL,AL
lbl1:
mov dx,offset msg2
mov ah,09h
int 21h
mov ah,01h
int 21h
sub al,30h
add al, val
mov val,al
loop lbl1
lbl2:
mov dx,offset msg3
mov ah,09h
int 21h
mov al, val
div bl
add ax,3030h
mov dx,ax
mov ah,02h
int 21h
mov ah,4ch
int 21h
Code ends
end Start
CODE ENDS`
Ich habe versucht, aber immer noch keinen Erfolg. So was? mov al, val xor ah, ah div bx – user3848412
@ user3848412 Jetzt machst du 'div bx' anstelle von' div bl'. Bist du sicher, dass du das willst? – fuz
In Ihrer Frage verwenden Sie 'div bl', nicht' div bx'. Die Antwort hängt von der genauen Variante von "div" ab, die verwendet wird. – Michael