DMG

Unijeti dva broja i znak

DMG
Mar 8th, 2012
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; multi-segment executable file template.
  2.  
  3. data segment
  4.     a db ?
  5.     b db ?
  6.     zn db ?  
  7.     rez db ?
  8.     razmak db " ", "$"
  9.     jednako db " = ", "$"  
  10.     nr db 10, 13, "$"
  11.     pkey db "press any key...$"
  12. ends
  13.  
  14. stack segment
  15.     dw   128  dup(0)
  16. ends
  17.  
  18. code segment
  19. start:
  20. ; set segment registers:
  21.     mov ax, data
  22.     mov ds, ax
  23.     mov es, ax
  24.  
  25.     mov ah,1
  26.     int 21h
  27.     sub al, 48
  28.     mov a, al
  29.    
  30.     int 21h
  31.     sub al, 48
  32.     mov b, al
  33.    
  34.     int 21h
  35.     mov zn, al  
  36.                
  37.     lea dx, nr
  38.     mov ah, 9
  39.     int 21h          
  40.                
  41.    
  42.     cmp zn, '+'
  43.     je saberi
  44.     jmp d1
  45.    
  46.     saberi:
  47.     mov al, a
  48.     add al, b
  49.     mov rez, al
  50.     add rez, 48
  51.    
  52.     lea dx, nr
  53.     mov ah, 9
  54.     int 21h
  55.    
  56.     mov dl, a  
  57.     add dl, 48
  58.     mov ah, 2
  59.     int 21h
  60.    
  61.     lea dx, razmak
  62.     mov ah, 9
  63.     int 21h
  64.    
  65.     mov dl, zn
  66.     mov ah, 2
  67.     int 21h        
  68.    
  69.     lea dx, razmak                                              
  70.     mov ah, 9
  71.     int 21h
  72.    
  73.     mov dl, b    
  74.     add dl, 48
  75.     mov ah, 2
  76.     int 21h    
  77.    
  78.     lea dx, jednako
  79.     mov ah, 9
  80.     int 21h
  81.    
  82.     mov dl, rez
  83.     mov ah, 2
  84.     int 21h      
  85.    
  86.    
  87.     jmp kraj
  88.    
  89.     d1:
  90.     cmp zn, '-'
  91.     je oduzmi
  92.     jmp d2
  93.    
  94.     oduzmi:
  95.     mov al, a
  96.     sub al, b
  97.     mov rez, al
  98.     add rez, 48
  99.    
  100.     lea dx, nr
  101.     mov ah, 9
  102.     int 21h
  103.    
  104.     mov dl, a  
  105.     add dl, 48
  106.     mov ah, 2
  107.     int 21h
  108.    
  109.     lea dx, razmak
  110.     mov ah, 9
  111.     int 21h
  112.    
  113.     mov dl, zn
  114.     mov ah, 2
  115.     int 21h        
  116.    
  117.     lea dx, razmak                                              
  118.     mov ah, 9
  119.     int 21h
  120.    
  121.     mov dl, b    
  122.     add dl, 48
  123.     mov ah, 2
  124.     int 21h    
  125.    
  126.     lea dx, jednako
  127.     mov ah, 9
  128.     int 21h
  129.    
  130.     mov dl, rez
  131.     mov ah, 2
  132.     int 21h
  133.    
  134.     jmp kraj  
  135.    
  136.     d2: cmp zn, '*'
  137.     je pomnozi
  138.     jmp d3
  139.    
  140.     pomnozi:
  141.     mov al, a
  142.     mul b
  143.     mov bl, 10
  144.     div bl  
  145.     mov ch, al
  146.     mov cl, ah
  147.    
  148.     lea dx, nr
  149.     mov ah, 9
  150.     int 21h
  151.    
  152.     mov dl, a  
  153.     add dl, 48
  154.     mov ah, 2
  155.     int 21h
  156.    
  157.     lea dx, razmak
  158.     mov ah, 9
  159.     int 21h
  160.    
  161.     mov dl, zn
  162.     mov ah, 2
  163.     int 21h        
  164.    
  165.     lea dx, razmak                                              
  166.     mov ah, 9
  167.     int 21h
  168.    
  169.     mov dl, b    
  170.     add dl, 48
  171.     mov ah, 2
  172.     int 21h    
  173.    
  174.     lea dx, jednako
  175.     mov ah, 9
  176.     int 21h
  177.    
  178.     mov dl, ch
  179.     add dl, 48
  180.     mov ah, 2
  181.     int 21h
  182.                    
  183.            
  184.     mov dl, cl  
  185.     add dl, 48
  186.     mov ah, 2
  187.     int 21h  
  188.    
  189.     jmp kraj
  190.                
  191.     d3: cmp zn, '/'
  192.     je podijeli
  193.     jmp kraj
  194.    
  195.     podijeli:
  196.     mov al, a
  197.     mov bl, 1
  198.     mul bl
  199.    
  200.     mov cl, b
  201.     div b
  202.     mov rez, al
  203.     add rez, 48
  204.     lea dx, nr
  205.     mov ah, 9
  206.     int 21h
  207.    
  208.     mov dl, a  
  209.     add dl, 48
  210.     mov ah, 2
  211.     int 21h
  212.    
  213.     lea dx, razmak
  214.     mov ah, 9
  215.     int 21h
  216.    
  217.     mov dl, zn
  218.     mov ah, 2
  219.     int 21h        
  220.    
  221.     lea dx, razmak                                              
  222.     mov ah, 9
  223.     int 21h
  224.    
  225.     mov dl, b    
  226.     add dl, 48
  227.     mov ah, 2
  228.     int 21h    
  229.    
  230.     lea dx, jednako
  231.     mov ah, 9
  232.     int 21h
  233.    
  234.     mov dl, rez
  235.     mov ah, 2
  236.     int 21h      
  237.    
  238.     kraj:
  239.                
  240.                
  241.     lea dx, pkey
  242.     mov ah, 9
  243.     int 21h        ; output string at ds:dx
  244.    
  245.     ; wait for any key....    
  246.     mov ah, 1
  247.     int 21h
  248.    
  249.     mov ax, 4c00h ; exit to operating system.
  250.     int 21h    
  251. ends
  252.  
  253. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment