Advertisement
Guest User

Untitled

a guest
Jan 12th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org 100h    ;okreslenie stosu
  2.  
  3. start:  
  4.  
  5. ;pobierz zmienna A
  6.     mov     ah,9
  7.     mov     dx,ent1
  8.     int     21h
  9.    
  10.     mov     ah,9
  11.     mov     dx, wpZmien1
  12.     int     21h
  13.    
  14.     mov     ah,1                                                           
  15.     int     21h
  16.  
  17.     mov     ah,0
  18.    
  19.     sub     ax,48
  20.     push    ax
  21.  
  22. ;pobierz zmienna B
  23.     mov     ah,9
  24.     mov     dx,ent1
  25.     int     21h
  26.  
  27.     mov     ah, 9
  28.     mov     dx, wpZmien2
  29.     int     21h
  30.  
  31.     mov     ah,1
  32.     int     21h
  33.    
  34.     mov     ah,0
  35.     sub     ax,48
  36.  
  37.     push    ax
  38.    
  39. ;wybierz dzialanie
  40.     mov     ah,9
  41.     mov     dx, ent1
  42.     int     21h
  43.  
  44.     mov     ah,9
  45.     mov     dx, tekst      
  46.     int     21h
  47.    
  48.     mov     ah,1
  49.     int     21h
  50.    
  51. warunki:
  52.     ; czy ponizej
  53.     cmp     al,48
  54.     jb      zlyZnak
  55.     ; czy wprowadzono 1
  56.     cmp     al,49  
  57.     je      dodawanie
  58.     jb      zlyZnak
  59.     ; czy wprowadzno 2
  60.     cmp     al,50
  61.     je      odejmowanie
  62.     ; czy wprowadzona 3
  63.     cmp     al,51  
  64.     je      mnozenie
  65.     ; czy wrowadzona 4
  66.     cmp     al,52
  67.     je      dzielenie
  68.     ; czy powyzej
  69.     cmp     al,53
  70.     ja      zlyZnak
  71.    
  72. zlyZnak:
  73.     ;wprowadzono zly znak poza 1-4
  74.     mov     ah,9
  75.     mov     dx,ent1
  76.     int     21h
  77.    
  78.     mov     ah,9
  79.     mov     dx,blad
  80.     int     21h
  81.    
  82.     jmp     koniec
  83.  
  84.  
  85. koniec:
  86.     mov     ax,4c00h
  87.     int     21h
  88.  
  89.  
  90. zmienne:
  91.     ent1      db    13,10,36
  92.     tekst     db    "Witaj uzytkowniku, wybierz dostepne dzialanie arytmetyczne: ", 13,10, "1 - dodaj", 13,10, "2 - odejmij",13,10, "3 - pomnoz",13,10, "4 - podziel", 13,10,36
  93.     wpZmien1  db    "Podaj wartosc zmiennej A:",13,10,36
  94.     wpZmien2  db    "Podaj wartosc zmiennej B:",13,10,36
  95.     wpWynik   db    "Wynik wynosi: ", 13,10,36
  96.     blad      db    "Wprowadzono zly znak, nieodpowiadajacy wskazanym instrukcjom, zakanczam program",13,10,36
  97.  
  98.  
  99. dodawanie:
  100.     push        bp
  101.    
  102.     mov     bp,sp
  103.  
  104.     mov     ax,0
  105.     mov     ax,[bp+4]
  106.     mov     bx,[bp+2]
  107.     add     ax,bx
  108.  
  109.     pop     bp
  110.  
  111.     jmp     petla1
  112.  
  113. odejmowanie:
  114.     push    bp
  115.    
  116.     mov     bp,sp
  117.  
  118.     mov     ax,0
  119.     mov     ax,[bp+4]
  120.     mov     bx,[bp+2]
  121.     sub     ax,bx
  122.  
  123.     pop     bp
  124.  
  125.     jmp     petla1
  126.  
  127. mnozenie:
  128.     push    bp
  129.    
  130.     mov     bp,sp
  131.  
  132.     mov     ax,0
  133.     mov     ax,[bp+4]
  134.     mov     bx,[bp+2]
  135.     mul     bl
  136.  
  137.     jmp     petla1
  138.  
  139. dzielenie:
  140.     push        bp
  141.    
  142.     mov     bp,sp
  143.  
  144.     mov     ax,0
  145.     mov     ax,[bp+4]
  146.     mov     bx,[bp+2]
  147.     div     bl
  148.     mov     ah,0
  149.  
  150.     pop     bp
  151.  
  152.     jmp     petla1
  153.  
  154. wypisz:
  155.     mov     ah,9
  156.     mov     dx,ent1
  157.     int     21h
  158.  
  159.     mov     ah,9
  160.     mov     dx,wpWynik
  161.     int     21h
  162.  
  163.     jmp     petla2
  164.  
  165.  
  166. petla1:
  167.     cmp     ax, 0
  168.     jle     wypisz
  169.    
  170.     mov     bx,10
  171.     div     bx
  172.  
  173.     push    dx
  174.     inc     cx
  175.     jmp     petla1
  176.  
  177. petla2:
  178.     pop     dx
  179.    
  180.     mov     ax,dx
  181.    
  182.     add     ax,48
  183.    
  184.     mov     ah,2
  185.     mov     dx,ax
  186.     int     21h
  187.  
  188.     loop    petla2
  189.    
  190.     jmp     koniec
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement