DMG

Tablica mnozenja

DMG
Apr 27th, 2012
115
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.     nr  db 10, 13, "$"
  5.     raz db " ", "$"
  6.     razd db "   ", "$"
  7.     razf db "  ", "$"
  8.     razmak db "     ", "$"
  9.     a db ?  ; stotica
  10.     b db ?  ; desetica
  11.     c db ?  ; jedinica
  12.     n db 18 ; broj dokle zelimo da mnozi  
  13.    
  14. ends
  15.  
  16. stack segment
  17.     dw   128  dup(0)
  18. ends
  19.  
  20. code segment
  21. start:
  22. ; set segment registers:
  23.     mov ax, data
  24.     mov ds, ax
  25.     mov es, ax    
  26.    
  27.     lea dx, razmak
  28.     mov ah, 9
  29.     int 21h
  30.    
  31.     mov bl, 1
  32.    
  33.     ; stampanje brojeva u prvom redu  
  34.     petlja:
  35.     cmp bl, n
  36.     jle stampajbr
  37.     jmp dalje
  38.    
  39.     stampajbr:
  40.     mov al, bl
  41.     mov bh, 1
  42.     mul bh    
  43.     mov dh, 10  
  44.     div dh
  45.    
  46.     mov bh, ah
  47.    
  48.     mov ah, 2
  49.     mov dl, al
  50.     add dl, 48
  51.     int 21h
  52.    
  53.     mov ah, 2
  54.     mov dl, bh
  55.     add dl, 48
  56.     int 21h  
  57.    
  58.     lea dx, razf
  59.     mov ah, 9
  60.     int 21h
  61.    
  62.     add bl, 1
  63.     jmp petlja
  64.    
  65.     ; stampanje dva nova reda
  66.     dalje:    
  67.     lea dx, nr
  68.     mov ah, 9
  69.     int 21h
  70.    
  71.     lea dx, nr
  72.     mov ah, 9
  73.     int 21h
  74.              
  75.     mov bl, 1
  76.     mov cl, 1
  77.    
  78.     while:  
  79.     ; stampanje brojeva sa strane (dvocifreni)
  80.     cmp cl, n
  81.     jg kraj2
  82.    
  83.     mov al, cl
  84.     mov bh, 1
  85.     mul bh    
  86.     mov dh, 10  
  87.     div dh
  88.    
  89.     mov bh, ah
  90.    
  91.     mov ah, 2
  92.     mov dl, al
  93.     add dl, 48
  94.     int 21h
  95.    
  96.     mov ah, 2
  97.     mov dl, bh
  98.     add dl, 48
  99.     int 21h  
  100.    
  101.     lea dx, razd
  102.     mov ah, 9
  103.     int 21h
  104.     ; kraj stampanja brojeva sa strane      
  105.    
  106.     cmp cl, n
  107.     jle for
  108.     jmp kraj2
  109.      
  110.     for:
  111.     cmp bl, n
  112.     jle racunaj
  113.     jmp kraj
  114.    
  115.     racunaj:
  116.     ; stampanje trocifrenog broja
  117.     mov al, bl
  118.     mul cl    
  119.     mov dh, 10  
  120.     div dh
  121.    
  122.     mov c, ah
  123.     mov bh, 1
  124.     mul bh
  125.     div dh
  126.    
  127.     mov b, ah
  128.     mov a, al
  129.    
  130.     mov ah, 2
  131.     mov dl, a
  132.     add dl, 48
  133.     int 21h
  134.  
  135.     mov ah, 2
  136.     mov dl, b
  137.     add dl, 48
  138.     int 21h      
  139.              
  140.     mov ah, 2
  141.     mov dl, c
  142.     add dl, 48
  143.     int 21h
  144.     ; kraj stampanja trocifrenog broja
  145.              
  146.     lea dx, raz
  147.     mov ah, 9
  148.     int 21h
  149.  
  150.     add bl, 1
  151.     jmp for    
  152.            
  153.     kraj:  
  154.     mov bl, 1
  155.     add cl, 1
  156.     lea dx, nr
  157.     mov ah, 9
  158.     int 21h
  159.     jmp while
  160.      
  161.     kraj2:
  162.      
  163.     lea dx, nr
  164.     mov ah, 9
  165.     int 21h
  166.  
  167.    
  168.     mov ax, 4c00h ; exit to operating system.
  169.     int 21h    
  170. ends
  171.  
  172. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment