我一直在处理我的代码,我只是想问一下如何按行同时显示星号?我正在制作一个星号三角形,例如第一行" *"第二排" ***"这是我要理解的代码。
org 100h
mov ax, 3
int 10h
mov ax, 1003h
mov bx, 0
int 10h
mov dl, 0
mov dh, 0
mov bl, 0
jmp next_char
next_row:
inc dh
cmp dh, 16
je stop_print
mov dl, 0
next_char:
mov ah, 02h
int 10h
mov bh, 0
mov cx, 7
mov ah, 09h
int 10h
inc bl ; next attributes.
; set cursor at (dl,dh):
mov dl, 0 ; column.
mov dh, 0 ; row.
mov ah, 02h
int 10h
mov dl, 10
int 21h
mov dl, ' '
int 21h
mov dl, ' '
int 21h
mov dl, ' '
int 21h
mov dl, ' '
int 21h
mov dl, '*'
int 21h
mov dl, 08
int 21h
mov dl, 08
int 21h
mov dl, 13
int 21h
mov dl, 00
int 21h
mov dl, 10 ;new line
int 21h
mov dl, ' '
int 21h
mov dl, ' '
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, 08
int 21h
mov dl, 08
int 21h
mov dl, 13
int 21h
mov dl, 00
int 21h
mov dl, 10 ;new line
int 21h
mov dl, ' '
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, 08
int 21h
mov dl, 08
int 21h
mov dl, 13
int 21h
mov dl, 00
int 21h
mov dl, 10 ;new line
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, 08
int 21h
mov dl, 08
int 21h
mov dl, 13
int 21h
mov dl, 00
int 21h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov dl, 1 ; * column position.
mov dh, 1 ; row position.
mov ah, 02h
int 10h
mov bh, 0
mov cx, 6
mov ah, 09h
int 10h
inc bl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov dl, 1 ; *** column position.
mov dh, 2 ; row position.
mov ah, 02h
int 10h
mov bh, 0
mov cx, 6
mov ah, 09h
int 10h
inc bl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov dl, 1 ; ***** column position.
mov dh, 3 ; row position.
mov ah, 02h
int 10h
mov bh, 0
mov cx, 6
mov ah, 09h
int 10h
inc bl
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov dl, 1 ; ******* column position.
mov dh, 4 ; row position.
mov ah, 02h
int 10h
mov bh, 0
mov cx, 7 ;
mov ah, 09h
int 10h
inc bl
je next_row
jmp next_char
stop_print:
mov dl, 10 ; column.
mov dh, 5 ; row.
mov ah, 02h
int 10h
mov ah, 0
int 16h
ret
答案 0 :(得分:1)
我想你要求简化这个序列
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
mov dl, '*'
int 21h
一个简单的循环将完成工作
push cx
mov cx,7
again:
mov dl,'*'
int 21h
loop again
pop cx