Ich arbeite an einer Hausaufgabe, wo ich 20 Zeilen von 20 zufälligen Zeichen auf dem Bildschirm zufällig drucken muss. Ich bin extrem neu in der Assemblersprache und verstehe nicht, warum meine Schleife nicht enden wird, obwohl ich ecx auf 20 gesetzt habe und jedes Mal dekrementiere.Montage Endlosschleife [HOMEWORK]
Momentan druckt der Bildschirm die zufälligen Buchstaben korrekt aus, hört aber nie auf zu drucken.
Mein Code ist wie folgt:
INCLUDE Irvine32.inc
.data
buffer byte 20 dup(?) ;buffer of size 20 initialized ?
L dword 20 ;length of size 20
.code
main proc
l1:
mov ecx,L ;ecx = 20
call RandomString ;call Random String
dec ecx ;ecx --
cmp ecx,0 ;compare ecx to zero
jne l1 ;jump if not equal back to l1
call WaitMsg ;press any button to continue
exit
main endp
RandomString PROC USES eax ecx edx
mov eax,26 ;eax = 26
call RandomRange ;call RandomRange
add eax, 'A' ;eax = random number between 0 and 25 + 'A'
mov buffer,al ;buffer = random letter
mov edx, OFFSET buffer ;edx = address of buffer
call WriteString ;write string to console
ret
RandomString ENDP
end main
perfekt! das war es genau! Sehr geschätzt! – GreenFerret95
@ GreenFerret95 Wenn jemand eine sinnvolle Antwort gibt, sollten Sie es als solche markieren, wenn andere Leser die Liste der Fragen betrachten, die sie leicht identifizieren können, die Antworten haben. Wenn es auch mehr als eine Antwort gibt, wird die von Ihnen ausgewählte direkt unter Ihrer Frage angezeigt. –