2014-10-12 4 views
0

Я работаю над своим кодом, и я просто хочу спросить, можно ли показывать звездочку одновременно по строке? Я делал треугольник звездочек, например, первый ряд «*» второй строки «***» вот мой код, чтобы понять.Emu8086 символ символа звездочки одновременного отображения?

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 

ответ

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 
+0

Спасибо за ответ, я попытаюсь это позже, это будет образуют треугольник? Мой код способен последовательно менять цвет. – Starvinmarvinnn

Смежные вопросы