Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .MODEL small
- .STACK 100h
- .CODE
- mov ax, 0B800h ;początek ekranu
- mov es, ax ;do rejestru segmentowego ES
- ;FRGBSRGB
- mov al, 00000010b ;kolor zielony
- mov bp, 0 ;zaczynamy od 1 linii na ekranie
- mov cx, 30 ;powtórz 30 razy
- drawGreen:
- push cx ;zachowaj liczbę powtórzeń na stosie
- call drawVerticalLine ;wywołaj funkcję rysującą pionową linię na ekranie
- add bp, 2 ;kolejna pionowa linia
- pop cx ;przywróć liczbę powtórzeń ze stotu
- loop drawGreen ;powtórz
- mov al, 00000100b ;kolor czerwony
- mov bp, 50 ;zaczynamy od 50 linii ekranu
- mov cx, 55 ;powtórz 55 razy
- drawRed:
- push cx ;zachowaj liczbę powtórzeń na stosie
- call drawVerticalLine ;wywołaj funkcję rysującą pionową linię na ekranie
- add bp, 2 ;kolejna pionowa linia
- pop cx ;przywróć liczbę powtórzeń ze stotu
- loop drawRed ;powtórz
- mov ah, 4Ch ;funkcja exit
- int 21h ;wywołaj funkcję systemową
- drawVerticalLine proc ;funkcja rysująca linie pionowe
- mov di, 0 ;zacznij od pierwszej linii
- mov cx, 25 ;powtórz 25 razy
- nextLine: ;pętla
- mov byte ptr es:[di+bp], 0DBh ;umieść znak (di -> aktualna linia pozioma a raczej znak, bp -> linia pionowa)
- mov byte ptr es:[di+bp+1], al ;ustaw kolor z rejestru AL
- add di, 160 ;kolejna linia
- loop nextLine ;powtórz
- ret ;powrót z funkcji
- drawVerticalLine endp ;koniec funkcji
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement