1
首先,是的,我知道它是21世紀的,但我正在學習DosBox和NASM的舊彙編。我必須從輸入中獲取數字並根據用戶定義打印多個星號(*
)。例如:使用用戶的輸入作爲循環計數器
Enter the number (1-9): 5
*****
很簡單吧?但我不知道如何使用累加值作爲計數器。我當前的代碼:
org 100h
mov dx, number_txt
mov ah, 9
int 0x21
mov dx, buffer
mov ah, 0Ah
int 0x21 ; read number
mov dx, br
mov ah, 9
int 0x21 ; enter
mov dx, asterysk ; will write "*"
mov ah, 9
mov cx, buffertxt ; HERE IS THE PROBLEM
myloop:
int 0x21 ; write *
loop myloop
mov ax, 0x4C00
int 0x21 ; end
number_txt: db "Enter the number (1-9): $"
br: db 0Ah,0Dh,"$"
asterysk: db "*$"
buffer: db 5,0
buffertxt: times 5 db "$"
目前我得到4.5線*
,不管我寫什麼號碼。我知道我必須將buffertxt
轉換爲int/hex以在cx
中用作計數器,但我不知道如何。
我在谷歌和這裏閱讀了很多,但我沒有找到答案。
很好,謝謝。我嘗試了一些與sub類似的東西,但我不知道如何處理ch。 – Radzikowski