[英]Printing a triangle of characters in assembly
我正在開發這個練習:
編寫匯編程序,給定一個字符作為輸入,輸出一個字符本身大小為 5 x 5 的三角形。
我有一個問題,因為當我 go 輸入一個字符時,字符沒有形成三角形,而是打印了其他字符。
我的輸入:
F
我的 output:
所需的 output:
f
ff
fff
ffff
fffff
我的代碼:
Title PROVA
;programma per la prova dell’ambiente Turbo Assembler
DOSSEG
.MODEL SMALL
.STACK 100
.DATA
; se ci sono qui vanno dichiarate le vriabili
.CODE
MOV AX, @data ;(obbligatorie) inizializzano il DS
MOV DS, AX
MOV AX, 00
MOV BX, 00
MOV CX, 00
MOV DX, 00
mov ah,01h ;input va a mettere l'input in AL ;n
int 21h
MOV BL, AL ;n
MOV CL, BL ;n
MOV CH, 0H
ciclo:
CMP CH, 5H
JE fine
inc CH
MOV DL, BL
mov ah, 02h ;stampa il contenuto di dl
int 21h
mov DL, 10D
int 21h
mov DL, 13D
int 21h
;BL
ADD BL, CL
JMP ciclo
fine:
MOV AL, 00H ;(obbligatorie) ritornano il controllo al sistema operativo
MOV AH, 4CH
INT 21H
END
正如 vitsoft 指出的那樣,由於您將CL
添加到BL
,因此 char 發生了變化。 正如邁克爾所說,要制作三角形,您需要使用另一個循環。 以下是要更改的部分:
MOV AH, 01h ; input va a mettere l'input in AL ;n
INT 21H
MOV BL, AL ; n
MOV CH, 0H
ciclo:
CMP CH, 5H
JE fine
INC CH
MOV DL, 10D
INT 21H
MOV DL, 13D
INT 21H
MOV CL, CH
MOV AH, 02H ; stampa il contenuto di dl
MOV DL, BL
innerLoop:
INT 21H
DEC CL
JNE innerLoop
JMP ciclo
fine:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.