Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Progr           segment
  2.                 assume  cs:Progr, ds:dane, ss:stosik
  3.  
  4. start:          mov ax,dane
  5.                 mov ds,ax
  6.                 mov ax,stosik
  7.                 mov ss,ax
  8.                 mov sp,offset szczyt
  9. napiszPustyZnak:
  10.                 mov ax, 0b800h ;Początek bloku na pamięć wideo
  11.                 mov es, ax
  12.                 mov di, 0 ;di czyli rejestr indeksowy. Może być wykorzystywany jako wstaźnik - adresacja pośrednia
  13.                 mov al, ' '
  14.                 mov ah, 07d ;Biała litera na czarnym tle - modyfikacja wyglądu znaku
  15.                 mov cx, 2000
  16. czysc:     
  17.                 mov es:[di], ax   ;To jest tak jakby referencja, chcesz modyfikować wartość a nie wskaźnik
  18.                 inc di
  19.                 inc di
  20.                 loop czysc
  21.                 mov ax, 0b800h
  22.                 mov di, 0
  23. powtarzajWPionie:
  24.                 mov cx, [ilePrzesun] ;Tak jakby referencja, wartość ilePrzesun a nie ilePrzesun
  25. przesun:    
  26.                 inc di
  27.                 inc di
  28.                 loop przesun
  29.                 mov cx, [ileWypisac]
  30. wypisz:
  31.                 mov al, [jakaLiterka]
  32.                 mov ah, 07d
  33.                 mov es:[di], ax
  34.                 inc di
  35.                 inc di
  36.                 loop wypisz
  37.                 add [ileWypisac], 2
  38.                 mov bx, [ileDoKonca]
  39.                 shl bx, 1
  40.                 add di, bx         
  41.                 sub [ilePrzesun], 1
  42.                 sub [ileDoKonca], 1
  43.                 sub [ileRazy], 1
  44.                 mov cx, [ileRazy]
  45.                 inc [jakaLiterka]
  46.                 loop powtarzajWPionie
  47.                
  48.                 ;Przerwanie kończące program
  49.                 mov  ah, 4ch
  50.                 mov  al, 0
  51.                 int  21h
  52. Progr           ends
  53.  
  54. dane            segment
  55.      ilePrzesun dw 39
  56.      ileDoKonca dw 40
  57.      ileWypisac dw 1
  58.         ileRazy dw 25   ;dw jest 16 bitowe
  59.     jakaLiterka db 'a' ;db jest 8 bitowe
  60. dane            ends
  61.  
  62. stosik          segment
  63.                 dw    100h dup(0)
  64. szczyt          Label word
  65. stosik          ends
  66.  
  67. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement