DMG

Determinante

DMG
May 28th, 2012
91
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.    n db ?
  5.    det db 10 dup (?)
  6.    prcif db ?
  7.    drcif db ?  
  8.    pkey db "press any key...$"
  9. ends
  10.  
  11. stack segment
  12.     dw   128  dup(0)
  13. ends
  14.  
  15. code segment
  16. start:
  17. ; set segment registers:
  18.     mov ax, data
  19.     mov ds, ax
  20.     mov es, ax
  21.  
  22.     mov ah, 1
  23.     int 21h
  24.     sub al, 48
  25.     mov n, al
  26.    
  27.     cmp al, 2
  28.     je det2
  29.     jmp det3
  30.    
  31.     det2:
  32.     mov si, 0
  33.     unos2:
  34.     cmp si, 4
  35.     jl unesi2
  36.     jmp kraj2
  37.    
  38.     unesi2:
  39.    
  40.     mov ah, 1
  41.     int 21h
  42.     sub al, 48
  43.     mov det[si], al
  44.     add si, 1
  45.     jmp unos2
  46.    
  47.     kraj2:
  48.     mov al, det[0]
  49.     mov bl, det[3]
  50.     mul bl
  51.    
  52.     mov dx, ax
  53.     mov al, det[2]
  54.     mov bl, det[1]
  55.     mul bl
  56.    
  57.     sub dx, ax
  58.     mov ax, dx
  59.     mov bl, 10
  60.     div bl
  61.    
  62.     mov prcif, al
  63.     mov drcif, ah
  64.    
  65.     mov dl, prcif
  66.     add dl, 48
  67.     mov ah, 2
  68.     int 21h
  69.    
  70.     mov dl, drcif
  71.     add dl, 48
  72.     mov ah, 2
  73.     int 21h  
  74.    
  75.     jmp gotovo
  76.    
  77.     det3:  
  78.     mov si, 0
  79.     unos3:
  80.     cmp si, 9
  81.     jl unesi3
  82.     jmp kraj3
  83.    
  84.     unesi3:
  85.    
  86.     mov ah, 1
  87.     int 21h
  88.     sub al, 48
  89.     mov det[si], al
  90.     add si, 1
  91.     jmp unos3
  92.    
  93.     kraj3:
  94.    
  95.     mov ax, 0
  96.     mov al, det[0]
  97.     mov bl, det[4]
  98.     mul bl
  99.     mov bl, 1
  100.     div bl
  101.     mov bl, det[8]
  102.     mul bl
  103.     mov dx, ax    
  104.    
  105.     mov ax, 0
  106.     mov al, det[1]
  107.     mov bl, det[5]
  108.     mul bl
  109.     mov bl, 1
  110.     div bl
  111.     mov bl, det[6]
  112.     mul bl
  113.     add dx, ax
  114.    
  115.     mov ax, 0
  116.     mov al, det[2]
  117.     mov bl, det[3]
  118.     mul bl
  119.     mov bl, 1
  120.     div bl
  121.     mov bl, det[7]
  122.     mul bl
  123.     add dx, ax  
  124.    
  125.     mov ax, 0
  126.     mov al, det[6]
  127.     mov bl, det[4]
  128.     mul bl
  129.     mov bl, 1
  130.     div bl
  131.     mov bl, det[2]
  132.     mul bl
  133.     sub dx, ax  
  134.    
  135.     mov ax, 0
  136.     mov al, det[7]
  137.     mov bl, det[5]
  138.     mul bl
  139.     mov bl, 1
  140.     div bl
  141.     mov bl, det[0]
  142.     mul bl
  143.     sub dx, ax  
  144.    
  145.     mov ax, 0
  146.     mov al, det[8]
  147.     mov bl, det[3]
  148.     mul bl
  149.     mov bl, 1
  150.     div bl
  151.     mov bl, det[1]
  152.     mul bl
  153.     sub dx, ax  
  154.    
  155.     mov ax, dx
  156.     mov bl, 10
  157.     div bl
  158.        
  159.     mov prcif, al
  160.     mov drcif, ah
  161.    
  162.     mov dl, prcif
  163.     add dl, 48
  164.     mov ah, 2
  165.     int 21h
  166.    
  167.     mov dl, drcif
  168.     add dl, 48
  169.     mov ah, 2
  170.     int 21h  
  171.  
  172.    
  173.     gotovo:
  174.     NOP
  175.        
  176.     lea dx, pkey
  177.     mov ah, 9
  178.     int 21h        ; output string at ds:dx
  179.    
  180.     ; wait for any key....    
  181.     mov ah, 1
  182.     int 21h
  183.    
  184.     mov ax, 4c00h ; exit to operating system.
  185.     int 21h    
  186. ends
  187.  
  188. end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment