1
我正在做家庭作業的任務,我需要隨機打印20行20隨機字符到屏幕上。我對彙編語言非常陌生,不明白爲什麼我的循環不會結束,即使我將ecx設置爲20,並且每次都遞減。組裝無限循環[家庭]
當前屏幕正確地打印了隨機字母,但從未停止打印。
我的代碼如下:
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
完美!這就是它!非常感激! – GreenFerret95
@ GreenFerret95當某人提供了有意義的答案時,您應該將其標記爲這樣,當其他讀者查看問題列表時,可以輕鬆識別出具有答案的答案。如果還有多個答案,則您選擇的答案將立即顯示在您問題的下方。 –