Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.  
  3. .LC0:
  4.     .ascii  "Podaj wymiary macierzy: \000"
  5.    
  6. .LC1:
  7.     .ascii  "%f\000"
  8.    
  9. .LC2:
  10.     .ascii  "Podaj element %.0fX%.0f macierzy : \012\000"
  11.    
  12. .LC3:
  13.     .ascii  "\012Nie da sie odwrocic tej macierzy\000"
  14.    
  15.    
  16.    
  17. .text  
  18. main:
  19.     .frame  $sp,2552,$31       
  20.     addi    $sp,$sp,-2552
  21.     sw  $31,2548($sp)
  22.     li  $2,%hi(.LC0)
  23.     addi    $4,$2,%lo(.LC0)
  24.     jal printf
  25.     nop
  26.  
  27.     addi    $3,$sp,2536
  28.     li  $2,%hi(.LC1)
  29.     addi    $4,$2,%lo(.LC1)
  30.     move    $5,$3
  31.     jal scanf
  32.     nop
  33.  
  34.     lwc1    $f0,2536($sp)
  35.     cvt.d.s $f2,$f0
  36.     lwc1    $f0,2536($sp)
  37.     cvt.d.s $f0,$f0
  38.     sdc1    $f0,16($sp)
  39.     li  $2,%hi(.LC2)
  40.     addi    $4,$2,%lo(.LC2)
  41.     mfc1    $7,$f2
  42.     mfhc1   $6,$f2
  43.     jal printf
  44.     nop
  45.  
  46.     sw  $0,24($sp)
  47.     b   .L2
  48.     nop
  49.  
  50. .L5:
  51.     sw  $0,28($sp)
  52.     b   .L3
  53.     nop
  54.  
  55. .L4:
  56.     addi    $5,$sp,36
  57.     lw  $4,24($sp)
  58.     move    $3,$4
  59.     sll $2,$3,3
  60.     move    $3,$2
  61.     sll $2,$3,2
  62.     subu    $2,$2,$3
  63.     addu    $2,$2,$4
  64.     lw  $3,28($sp)
  65.     addu    $2,$2,$3
  66.     sll $2,$2,2
  67.     addu    $3,$5,$2
  68.     li  $2,%hi(.LC1)
  69.     addi    $4,$2,%lo(.LC1)
  70.     move    $5,$3
  71.     jal scanf
  72.     nop
  73.  
  74.     lw  $2,28($sp)
  75.     addi    $2,$2,1
  76.     sw  $2,28($sp)
  77. .L3:
  78.     lw  $2,28($sp)
  79.     mtc1    $2,$f0
  80.     cvt.s.w $f2,$f0
  81.     lwc1    $f0,2536($sp)
  82.     c.lt.$fcc0,$f2,$f0
  83.     bc1t    $fcc0,.L4
  84.     nop
  85.  
  86.     lw  $2,24($sp)
  87.     addi    $2,$2,1
  88.     sw  $2,24($sp)
  89. .L2:
  90.     lw  $2,24($sp)
  91.     mtc1    $2,$f0
  92.     cvt.s.w $f2,$f0
  93.     lwc1    $f0,2536($sp)
  94.     c.lt.$fcc1,$f2,$f0
  95.     bc1t    $fcc1,.L5
  96.     nop
  97.  
  98.     lwc1    $f0,2536($sp)
  99.     addi    $2,$sp,36
  100.     move    $4,$2
  101.     mfc1    $5,$f0
  102.     jal determinant
  103.     nop
  104.  
  105.     swc1    $f0,32($sp)
  106.     lwc1    $f0,32($sp)
  107.     mtc1    $0,$f2
  108.     c.eq.$fcc2,$f0,$f2
  109.     bc1f    $fcc2,.L6
  110.     nop
  111.  
  112.     li  $2,%hi(.LC3)
  113.     addi    $4,$2,%lo(.LC3)
  114.     jal puts
  115.     nop
  116.  
  117.     b   .L7
  118.     nop
  119.  
  120. .L6:
  121.     lwc1    $f0,2536($sp)
  122.     addi    $2,$sp,36
  123.     move    $4,$2
  124.     mfc1    $5,$f0
  125.     jal cofactor
  126.     nop
  127.  
  128. .L7:
  129.     lw  $31,2548($sp)
  130.     addi    $sp,$sp,2552
  131.     jr  $31
  132.     nop
  133.  
  134.    
  135. determinant:
  136.     .frame  $sp,2560,$31        # vars= 2528, regs= 1/2, args= 16, gp= 0
  137.     .mask   0x80000000,-12
  138.     .fmask  0x00300000,-8
  139.     .set    noreorder
  140.     .set    nomacro
  141.     addi    $sp,$sp,-2560
  142.     sw  $31,2548($sp)
  143.     sdc1    $f20,2552($sp)
  144.     sw  $4,2560($sp)
  145.     sw  $5,2564($sp)
  146.     lwc1    $f0,%gp_rel(.LC4)($28)
  147.     swc1    $f0,16($sp)
  148.     sw  $0,20($sp)
  149.     lwc1    $f2,2564($sp)
  150.     lwc1    $f0,%gp_rel(.LC4)($28)
  151.     c.eq.$fcc0,$f2,$f0
  152.     bc1f    $fcc0,.L9
  153.     nop
  154.  
  155.     lw  $2,2560($sp)
  156.     lwc1    $f0,0($2)
  157.     b   .L20
  158.     nop
  159.  
  160. .L9:
  161.     sw  $0,20($sp)
  162.     sw  $0,40($sp)
  163.     b   .L11
  164.     nop
  165.  
  166. .L19:
  167.     sw  $0,32($sp)
  168.     sw  $0,36($sp)
  169.     sw  $0,24($sp)
  170.     b   .L12
  171.     nop
  172.  
  173. .L18:
  174.     sw  $0,28($sp)
  175.     b   .L13
  176.     nop
  177.  
  178. .L17:
  179.     lw  $4,24($sp)
  180.     move    $3,$4
  181.     sll $2,$3,3
  182.     move    $3,$2
  183.     sll $2,$3,2
  184.     subu    $2,$2,$3
  185.     addu    $2,$2,$4
  186.     lw  $3,28($sp)
  187.     addu    $2,$2,$3
  188.     sll $2,$2,2
  189.     addi    $3,$sp,16
  190.     addu    $2,$3,$2
  191.     sw  $0,28($2)
  192.     lw  $2,24($sp)
  193.     beq $2,$0,.L14
  194.     nop
  195.  
  196.     lw  $3,28($sp)
  197.     lw  $2,40($sp)
  198.     beq $3,$2,.L14
  199.     nop
  200.  
  201.     lw  $2,24($sp)
  202.     sll $2,$2,2
  203.     sll $3,$2,2
  204.     addu    $2,$2,$3
  205.     sll $3,$2,2
  206.     addu    $2,$2,$3
  207.     lw  $3,2560($sp)
  208.     addu    $3,$3,$2
  209.     lw  $2,28($sp)
  210.     sll $2,$2,2
  211.     addu    $2,$3,$2
  212.     lwc1    $f0,0($2)
  213.     lw  $4,32($sp)
  214.     move    $3,$4
  215.     sll $2,$3,3
  216.     move    $3,$2
  217.     sll $2,$3,2
  218.     subu    $2,$2,$3
  219.     addu    $2,$2,$4
  220.     lw  $3,36($sp)
  221.     addu    $2,$2,$3
  222.     sll $2,$2,2
  223.     addi    $3,$sp,16
  224.     addu    $2,$3,$2
  225.     swc1    $f0,28($2)
  226.     lw  $2,36($sp)
  227.     mtc1    $2,$f0
  228.     cvt.s.w $f2,$f0
  229.     lwc1    $f4,2564($sp)
  230.     lwc1    $f0,%gp_rel(.LC5)($28)
  231.     sub.s   $f0,$f4,$f0
  232.     c.lt.$fcc1,$f2,$f0
  233.     bc1f    $fcc1,.L22
  234.     nop
  235.  
  236.     lw  $2,36($sp)
  237.     addi    $2,$2,1
  238.     sw  $2,36($sp)
  239.     b   .L14
  240.     nop
  241.  
  242. .L22:
  243.     sw  $0,36($sp)
  244.     lw  $2,32($sp)
  245.     addi    $2,$2,1
  246.     sw  $2,32($sp)
  247. .L14:
  248.     lw  $2,28($sp)
  249.     addi    $2,$2,1
  250.     sw  $2,28($sp)
  251. .L13:
  252.     lw  $2,28($sp)
  253.     mtc1    $2,$f0
  254.     cvt.s.w $f2,$f0
  255.     lwc1    $f0,2564($sp)
  256.     c.lt.$fcc2,$f2,$f0
  257.     bc1t    $fcc2,.L17
  258.     nop
  259.  
  260.     lw  $2,24($sp)
  261.     addi    $2,$2,1
  262.     sw  $2,24($sp)
  263. .L12:
  264.     lw  $2,24($sp)
  265.     mtc1    $2,$f0
  266.     cvt.s.w $f2,$f0
  267.     lwc1    $f0,2564($sp)
  268.     c.lt.$fcc3,$f2,$f0
  269.     bc1t    $fcc3,.L18
  270.     nop
  271.  
  272.     lw  $3,2560($sp)
  273.     lw  $2,40($sp)
  274.     sll $2,$2,2
  275.     addu    $2,$3,$2
  276.     lwc1    $f20,0($2)
  277.     lwc1    $f2,2564($sp)
  278.     lwc1    $f0,%gp_rel(.LC4)($28)
  279.     sub.s   $f0,$f2,$f0
  280.     addi    $2,$sp,44
  281.     move    $4,$2
  282.     mfc1    $5,$f0
  283.     jal determinant
  284.     nop
  285.  
  286.     mul.s   $f2,$f20,$f0
  287.     lwc1    $f0,16($sp)
  288.     mul.s   $f0,$f2,$f0
  289.     lwc1    $f2,20($sp)
  290.     add.s   $f0,$f2,$f0
  291.     swc1    $f0,20($sp)
  292.     lw  $3,16($sp)
  293.     li  $2,-2147483648          # 0xffffffff80000000
  294.     xor $2,$3,$2
  295.     sw  $2,16($sp)
  296.     lw  $2,40($sp)
  297.     addi    $2,$2,1
  298.     sw  $2,40($sp)
  299. .L11:
  300.     lw  $2,40($sp)
  301.     mtc1    $2,$f0
  302.     cvt.s.w $f2,$f0
  303.     lwc1    $f0,2564($sp)
  304.     c.lt.$fcc4,$f2,$f0
  305.     bc1t    $fcc4,.L19
  306.     nop
  307.  
  308.     lwc1    $f0,20($sp)
  309. .L20:
  310.     lw  $31,2548($sp)
  311.     ldc1    $f20,2552($sp)
  312.     addi    $sp,$sp,2560
  313.     jr  $31
  314.     nop
  315.  
  316.    
  317. cofactor:
  318.    
  319.     addi    $sp,$sp,-5056
  320.     sw  $31,5044($sp)
  321.     sdc1    $f20,5048($sp)
  322.     sw  $4,5056($sp)
  323.     sw  $5,5060($sp)
  324.     sw  $0,20($sp)
  325.     b   .L24
  326.     nop
  327.  
  328. .L34:
  329.     sw  $0,16($sp)
  330.     b   .L25
  331.     nop
  332.  
  333. .L33:
  334.     sw  $0,24($sp)
  335.     sw  $0,28($sp)
  336.     sw  $0,32($sp)
  337.     b   .L26
  338.     nop
  339.  
  340. .L32:
  341.     sw  $0,36($sp)
  342.     b   .L27
  343.     nop
  344.  
  345. .L31:
  346.     lw  $3,32($sp)
  347.     lw  $2,20($sp)
  348.     beq $3,$2,.L28
  349.     nop
  350.  
  351.     lw  $3,36($sp)
  352.     lw  $2,16($sp)
  353.     beq $3,$2,.L28
  354.     nop
  355.  
  356.     lw  $2,32($sp)
  357.     sll $2,$2,2
  358.     sll $3,$2,2
  359.     addu    $2,$2,$3
  360.     sll $3,$2,2
  361.     addu    $2,$2,$3
  362.     lw  $3,5056($sp)
  363.     addu    $3,$3,$2
  364.     lw  $2,36($sp)
  365.     sll $2,$2,2
  366.     addu    $2,$3,$2
  367.     lwc1    $f0,0($2)
  368.     lw  $4,24($sp)
  369.     move    $3,$4
  370.     sll $2,$3,3
  371.     move    $3,$2
  372.     sll $2,$3,2
  373.     subu    $2,$2,$3
  374.     addu    $2,$2,$4
  375.     lw  $3,28($sp)
  376.     addu    $2,$2,$3
  377.     sll $2,$2,2
  378.     addi    $3,$sp,16
  379.     addu    $2,$3,$2
  380.     swc1    $f0,24($2)
  381.     lw  $2,28($sp)
  382.     mtc1    $2,$f0
  383.     cvt.s.w $f2,$f0
  384.     lwc1    $f4,5060($sp)
  385.     lwc1    $f0,%gp_rel(.LC5)($28)
  386.     sub.s   $f0,$f4,$f0
  387.     c.lt.$fcc0,$f2,$f0
  388.     bc1f    $fcc0,.L36
  389.     nop
  390.  
  391.     lw  $2,28($sp)
  392.     addi    $2,$2,1
  393.     sw  $2,28($sp)
  394.     b   .L28
  395.     nop
  396.  
  397. .L36:
  398.     sw  $0,28($sp)
  399.     lw  $2,24($sp)
  400.     addi    $2,$2,1
  401.     sw  $2,24($sp)
  402. .L28:
  403.     lw  $2,36($sp)
  404.     addi    $2,$2,1
  405.     sw  $2,36($sp)
  406. .L27:
  407.     lw  $2,36($sp)
  408.     mtc1    $2,$f0
  409.     cvt.s.w $f2,$f0
  410.     lwc1    $f0,5060($sp)
  411.     c.lt.$fcc1,$f2,$f0
  412.     bc1t    $fcc1,.L31
  413.     nop
  414.  
  415.     lw  $2,32($sp)
  416.     addi    $2,$2,1
  417.     sw  $2,32($sp)
  418. .L26:
  419.     lw  $2,32($sp)
  420.     mtc1    $2,$f0
  421.     cvt.s.w $f2,$f0
  422.     lwc1    $f0,5060($sp)
  423.     c.lt.$fcc2,$f2,$f0
  424.     bc1t    $fcc2,.L32
  425.     nop
  426.  
  427.     lw  $3,20($sp)
  428.     lw  $2,16($sp)
  429.     addu    $2,$3,$2
  430.     mtc1    $2,$f0
  431.     cvt.d.w $f0,$f0
  432.     ldc1    $f2,%gp_rel(.LC6)($28)
  433.     mov.d   $f12,$f2
  434.     mov.d   $f14,$f0
  435.     jal pow
  436.     nop
  437.  
  438.     mov.d   $f20,$f0
  439.     lwc1    $f2,5060($sp)
  440.     lwc1    $f0,%gp_rel(.LC4)($28)
  441.     sub.s   $f0,$f2,$f0
  442.     addi    $2,$sp,40
  443.     move    $4,$2
  444.     mfc1    $5,$f0
  445.     jal determinant
  446.     nop
  447.  
  448.     cvt.d.s $f0,$f0
  449.     mul.d   $f0,$f20,$f0
  450.     cvt.s.d $f0,$f0
  451.     lw  $4,20($sp)
  452.     move    $3,$4
  453.     sll $2,$3,3
  454.     move    $3,$2
  455.     sll $2,$3,2
  456.     subu    $2,$2,$3
  457.     addu    $2,$2,$4
  458.     lw  $3,16($sp)
  459.     addu    $2,$2,$3
  460.     sll $2,$2,2
  461.     addi    $3,$sp,16
  462.     addu    $2,$3,$2
  463.     swc1    $f0,2524($2)
  464.     lw  $2,16($sp)
  465.     addi    $2,$2,1
  466.     sw  $2,16($sp)
  467. .L25:
  468.     lw  $2,16($sp)
  469.     mtc1    $2,$f0
  470.     cvt.s.w $f2,$f0
  471.     lwc1    $f0,5060($sp)
  472.     c.lt.$fcc3,$f2,$f0
  473.     bc1t    $fcc3,.L33
  474.     nop
  475.  
  476.     lw  $2,20($sp)
  477.     addi    $2,$2,1
  478.     sw  $2,20($sp)
  479. .L24:
  480.     lw  $2,20($sp)
  481.     mtc1    $2,$f0
  482.     cvt.s.w $f2,$f0
  483.     lwc1    $f0,5060($sp)
  484.     c.lt.$fcc4,$f2,$f0
  485.     bc1t    $fcc4,.L34
  486.     nop
  487.  
  488.     addi    $2,$sp,2540
  489.     lw  $4,5056($sp)
  490.     move    $5,$2
  491.     lw  $6,5060($sp)
  492.     jal transpose
  493.     nop
  494.  
  495.     lw  $31,5044($sp)
  496.     ldc1    $f20,5048($sp)
  497.     addi    $sp,$sp,5056
  498.     jr  $31
  499.     nop
  500.  
  501.    
  502. .LC7:
  503.     .ascii  "\012\012\012Odwrocona macierz to: \000"
  504.     .align  2
  505. .LC8:
  506.     .ascii  "\011%f\000"
  507.     .text
  508.     .align  2
  509.     .globl  transpose
  510.    
  511. transpose:
  512.     .frame  $sp,5040,$31       
  513.     addi    $sp,$sp,-5040
  514.     sw  $31,5036($sp)
  515.     sw  $4,5040($sp)
  516.     sw  $5,5044($sp)
  517.     sw  $6,5048($sp)
  518.     sw  $0,16($sp)
  519.     b   .L38
  520.     nop
  521.  
  522. .L41:
  523.     sw  $0,20($sp)
  524.     b   .L39
  525.     nop
  526.  
  527. .L40:
  528.     lw  $2,20($sp)
  529.     sll $2,$2,2
  530.     sll $3,$2,2
  531.     addu    $2,$2,$3
  532.     sll $3,$2,2
  533.     addu    $2,$2,$3
  534.     lw  $3,5044($sp)
  535.     addu    $3,$3,$2
  536.     lw  $2,16($sp)
  537.     sll $2,$2,2
  538.     addu    $2,$3,$2
  539.     lwc1    $f0,0($2)
  540.     lw  $4,16($sp)
  541.     move    $3,$4
  542.     sll $2,$3,3
  543.     move    $3,$2
  544.     sll $2,$3,2
  545.     subu    $2,$2,$3
  546.     addu    $2,$2,$4
  547.     lw  $3,20($sp)
  548.     addu    $2,$2,$3
  549.     sll $2,$2,2
  550.     addi    $3,$sp,16
  551.     addu    $2,$3,$2
  552.     swc1    $f0,12($2)
  553.     lw  $2,20($sp)
  554.     addi    $2,$2,1
  555.     sw  $2,20($sp)
  556. .L39:
  557.     lw  $2,20($sp)
  558.     mtc1    $2,$f0
  559.     cvt.s.w $f2,$f0
  560.     lwc1    $f0,5048($sp)
  561.     c.lt.$fcc0,$f2,$f0
  562.     bc1t    $fcc0,.L40
  563.     nop
  564.  
  565.     lw  $2,16($sp)
  566.     addi    $2,$2,1
  567.     sw  $2,16($sp)
  568. .L38:
  569.     lw  $2,16($sp)
  570.     mtc1    $2,$f0
  571.     cvt.s.w $f2,$f0
  572.     lwc1    $f0,5048($sp)
  573.     c.lt.$fcc1,$f2,$f0
  574.     bc1t    $fcc1,.L41
  575.     nop
  576.  
  577.     lw  $4,5040($sp)
  578.     lw  $5,5048($sp)
  579.     jal determinant
  580.     nop
  581.  
  582.     swc1    $f0,24($sp)
  583.     sw  $0,16($sp)
  584.     b   .L42
  585.     nop
  586.  
  587. .L45:
  588.     sw  $0,20($sp)
  589.     b   .L43
  590.     nop
  591.  
  592. .L44:
  593.     lw  $4,16($sp)
  594.     move    $3,$4
  595.     sll $2,$3,3
  596.     move    $3,$2
  597.     sll $2,$3,2
  598.     subu    $2,$2,$3
  599.     addu    $2,$2,$4
  600.     lw  $3,20($sp)
  601.     addu    $2,$2,$3
  602.     sll $2,$2,2
  603.     addi    $3,$sp,16
  604.     addu    $2,$3,$2
  605.     lwc1    $f2,12($2)
  606.     lwc1    $f0,24($sp)
  607.     div.s   $f0,$f2,$f0
  608.     lw  $4,16($sp)
  609.     move    $3,$4
  610.     sll $2,$3,3
  611.     move    $3,$2
  612.     sll $2,$3,2
  613.     subu    $2,$2,$3
  614.     addu    $2,$2,$4
  615.     lw  $3,20($sp)
  616.     addu    $2,$2,$3
  617.     sll $2,$2,2
  618.     addi    $3,$sp,16
  619.     addu    $2,$3,$2
  620.     swc1    $f0,2512($2)
  621.     lw  $2,20($sp)
  622.     addi    $2,$2,1
  623.     sw  $2,20($sp)
  624. .L43:
  625.     lw  $2,20($sp)
  626.     mtc1    $2,$f0
  627.     cvt.s.w $f2,$f0
  628.     lwc1    $f0,5048($sp)
  629.     c.lt.$fcc2,$f2,$f0
  630.     bc1t    $fcc2,.L44
  631.     nop
  632.  
  633.     lw  $2,16($sp)
  634.     addi    $2,$2,1
  635.     sw  $2,16($sp)
  636. .L42:
  637.     lw  $2,16($sp)
  638.     mtc1    $2,$f0
  639.     cvt.s.w $f2,$f0
  640.     lwc1    $f0,5048($sp)
  641.     c.lt.$fcc3,$f2,$f0
  642.     bc1t    $fcc3,.L45
  643.     nop
  644.  
  645.     li  $2,%hi(.LC7)
  646.     addi    $4,$2,%lo(.LC7)
  647.     jal puts
  648.     nop
  649.  
  650.     sw  $0,16($sp)
  651.     b   .L46
  652.     nop
  653.  
  654. .L49:
  655.     sw  $0,20($sp)
  656.     b   .L47
  657.     nop
  658.  
  659. .L48:
  660.     lw  $4,16($sp)
  661.     move    $3,$4
  662.     sll $2,$3,3
  663.     move    $3,$2
  664.     sll $2,$3,2
  665.     subu    $2,$2,$3
  666.     addu    $2,$2,$4
  667.     lw  $3,20($sp)
  668.     addu    $2,$2,$3
  669.     sll $2,$2,2
  670.     addi    $3,$sp,16
  671.     addu    $2,$3,$2
  672.     lwc1    $f0,2512($2)
  673.     cvt.d.s $f0,$f0
  674.     li  $2,%hi(.LC8)
  675.     addi    $4,$2,%lo(.LC8)
  676.     mfc1    $7,$f0
  677.     mfhc1   $6,$f0
  678.     jal printf
  679.     nop
  680.  
  681.     lw  $2,20($sp)
  682.     addi    $2,$2,1
  683.     sw  $2,20($sp)
  684. .L47:
  685.     lw  $2,20($sp)
  686.     mtc1    $2,$f0
  687.     cvt.s.w $f2,$f0
  688.     lwc1    $f0,5048($sp)
  689.     c.lt.$fcc4,$f2,$f0
  690.     bc1t    $fcc4,.L48
  691.     nop
  692.  
  693.     li  $4,10           # 0xa
  694.     jal putchar
  695.     nop
  696.  
  697.     lw  $2,16($sp)
  698.     addi    $2,$2,1
  699.     sw  $2,16($sp)
  700. .L46:
  701.     lw  $2,16($sp)
  702.     mtc1    $2,$f0
  703.     cvt.s.w $f2,$f0
  704.     lwc1    $f0,5048($sp)
  705.     c.lt.$fcc5,$f2,$f0
  706.     bc1t    $fcc5,.L49
  707.     nop
  708.  
  709.     lw  $31,5036($sp)
  710.     addi    $sp,$sp,5040
  711.     jr  $31
  712.     nop
  713.  
  714.    
  715. .LC4:
  716.     .word   1065353216
  717.     .align  2
  718. .LC5:
  719.     .word   1073741824
  720.     .align  3
  721. .LC6:
  722.     .word   -1074790400
  723.     .word   0
  724.     .ident  "GCC: (Codescape GNU Tools 2016.05-03 for MIPS MTI Bare Metal) 4.9.2"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement