Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. ENTER_KEY EQU 0DH
  3.  
  4. ;uproszczone dyrektywy segmentowe, oraz model tiny - program typu COM
  5. .MODEL TINY
  6. .CODE
  7.     .386        ;to znaczy ze bedziemy uzywac instrukcji zgodnych z procesorem x386
  8.     ORG 100H    ;pomijamy nie duzy przedrostek programu
  9.  
  10. START:
  11.     JMP MAIN
  12.    
  13. ;tutaj teraz definiujemy sobie nasze dane w pamieci programu
  14. ;ktore bedziemy wykozystywac podczas reszyt programu.
  15.  
  16. ;glowna procedura programu
  17. MAIN PROC NEAR
  18.     XOR SI,SI           ;zerujemy rejestr SI operacja xor, najszybsze zerowanie
  19.                         ;rej. SI bedzie nam slozyl jako licznik wprowadzonych znakow
  20. MAIN_START:             ;etykieta
  21.     MOV AX,1000H        ;funkcja przerwania 16h czekajaca na nacisniecie klawisza
  22.     INT 16H             ;wywolujemy przerwanie 16h, funkcja zwraca do rej. AL znak klawisza
  23.                         ;a do rej. AH kod klawisza
  24.     INC SI              ;zwieksz licznik wprowadzonych znakow
  25.    
  26.     CMP SI,16           ;porwnanie SI z 16
  27.     JA MAIN_END         ;gdy Si > 16 to skacz do MAIN_END
  28.    
  29.     CMP AL,ENTER_KEY    ;porownanie rej. AL z wartoscia 0Dh
  30.     JE MAIN_END         ;gdy jest rowne, gdy znak to klawisz enter to skacz do main_end
  31.    
  32.     MOV DL,'*'          ;do DL znak gwiazdki do wyswietlenia
  33.     MOV AH,02H          ;funkcja 02h przerwania dosa 21h ktora wyswietla podany znak z rej. DL
  34.     INT 21h
  35.     JMP MAIN_START      ;skok na poczatek programu
  36. MAIN_END:              
  37.     MOV AX,4C00H        ;funkcja przerwania 21h zakonczajaca program ze statusem = 0
  38.     INT 21H            
  39. MAIN ENDP
  40.  
  41.  
  42. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement