Advertisement
Guest User

Untitled

a guest
Oct 29th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .MODEL small
  2. .STACK 100h
  3.  
  4. .CODE
  5.     mov ax, 0B800h          ;początek ekranu
  6.     mov es, ax              ;do rejestru segmentowego ES
  7.                             ;FRGBSRGB
  8.     mov al, 00000010b       ;kolor zielony
  9.     mov bp, 0               ;zaczynamy od 1 linii na ekranie
  10.     mov cx, 30              ;powtórz 30 razy
  11.  
  12. drawGreen:
  13.     push cx                 ;zachowaj liczbę powtórzeń na stosie
  14.     call drawVerticalLine   ;wywołaj funkcję rysującą pionową linię na ekranie
  15.     add bp, 2               ;kolejna pionowa linia
  16.     pop cx                  ;przywróć liczbę powtórzeń ze stotu
  17.     loop drawGreen          ;powtórz
  18.  
  19.     mov al, 00000100b       ;kolor czerwony
  20.     mov bp, 50              ;zaczynamy od 50 linii ekranu
  21.     mov cx, 55              ;powtórz 55 razy
  22. drawRed:
  23.     push cx                 ;zachowaj liczbę powtórzeń na stosie
  24.     call drawVerticalLine   ;wywołaj funkcję rysującą pionową linię na ekranie
  25.     add bp, 2               ;kolejna pionowa linia
  26.     pop cx                  ;przywróć liczbę powtórzeń ze stotu
  27.     loop drawRed            ;powtórz
  28.  
  29.     mov ah, 4Ch             ;funkcja exit
  30.     int 21h                 ;wywołaj funkcję systemową
  31.  
  32. drawVerticalLine proc               ;funkcja rysująca linie pionowe
  33.     mov di, 0                       ;zacznij od pierwszej linii
  34.     mov cx, 25                      ;powtórz 25 razy
  35. nextLine:                           ;pętla
  36.     mov byte ptr es:[di+bp], 0DBh   ;umieść znak (di -> aktualna linia pozioma a raczej znak, bp -> linia pionowa)
  37.     mov byte ptr es:[di+bp+1], al   ;ustaw kolor z rejestru AL
  38.     add di, 160                     ;kolejna linia
  39.     loop nextLine                   ;powtórz
  40.     ret                             ;powrót z funkcji
  41. drawVerticalLine endp               ;koniec funkcji
  42.  
  43. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement