TEXT 207
Untitled By maffei2443 on 16th June 2017 10:34:18 PM
  1. .data
  2.         in1:    .word 1
  3.         in2:    .word 2
  4.         in3:    .float 1.5
  5.         in4:    .float 4.0
  6.         in5:    .float 2.0
  7.         in6:    .float -2.0
  8.         cpmuls: .float 6.0
  9.         cpadds: .float 5.5
  10.         cpsubs: .float 2.5
  11.         estate: .word  0
  12. .text
  13. li $s7,0
  14. li $s6,0
  15. li $sp,0x10011ffc
  16.  
  17. j main
  18.  
  19. acertor:
  20.         li $v0,1
  21.         jr $ra
  22. error:  li $v0,-1
  23.         jr $ra
  24.        
  25. soma:  
  26.         lw $t0,in1
  27.         lw $t1,in2
  28.         li $t2,3
  29.         li $a0,1
  30.        
  31.         add $t0,$t0,$t1
  32.         bne $t0,$t2,error
  33.         j acertor
  34.         jr $ra
  35.                
  36. multiplicacao:
  37.  
  38.  
  39.  
  40.         lw $t0,in1
  41.         lw $t1,in2
  42.         li $t2,2
  43.         li $a0,2
  44.        
  45.         mult $t0,$t1
  46.         mflo $t0
  47.        
  48.         bne $t0,$t2,error
  49.         j acertor
  50.         jr $ra
  51.        
  52. subtracao:     
  53.  
  54.         lw $t0,in1
  55.         lw $t1,in2
  56.         li $t2,-1
  57.         li $a0,3
  58.        
  59.         sub $t0,$t0,$t1
  60.         bne $t0,$t2,error
  61.         j acertor
  62.         jr $ra
  63.        
  64. op_and:
  65.         lw $t0,in1
  66.         lw $t1,in2
  67.         li $t2,0
  68.         li $a0,4
  69.        
  70.         and $t0,$t0,$t1
  71.        
  72.         bne $t0,$t2,error
  73.         j acertor
  74.         jr $ra 
  75.        
  76. op_or: 
  77.        
  78.         lw $t0,in1
  79.         lw $t1,in2
  80.         li $t2,3
  81.         li $a0,5
  82.        
  83.         or $t0,$t0,$t1
  84.        
  85.         bne $t0,$t2,error
  86.         j acertor
  87.         jr $ra 
  88.        
  89. mfhi_mflo:     
  90.         addi $sp,$sp,-4
  91.         sw $ra,0($sp)
  92.  
  93.         lw $t0,in1
  94.         lw $t1,in2
  95.         li $t2,2
  96.         li $a0,6
  97.        
  98.         mult $t0,$t1
  99.        
  100.         mflo $t0       
  101.         bne $t0,$t2,mfhi_mflo_chama_error
  102.         j try  
  103.        
  104.         mfhi_mflo_chama_error: j error
  105.         try:
  106.         jal acertor
  107.         lw $ra,0($sp)
  108.         addi $sp,$sp,4
  109.        
  110.         #sw $zero,0($zero)
  111.         move $t2,$zero
  112.         li $a0,7
  113.         mfhi $t0
  114.         bne $t0,$t2,error
  115.         j acertor
  116.         jr $ra
  117.        
  118. op_sll:
  119.         lw $t0,in1
  120.         lw $t1,in2
  121.         li $t2,4
  122.         li $a0,8
  123.        
  124.         sll $t0,$t0,2
  125.        
  126.         bne $t0,$t2,error
  127.         j acertor
  128.         jr $ra 
  129.        
  130. op_srl:
  131.         lw $t0,in2
  132.         li $t2,1
  133.         li $a0,9
  134.        
  135.         srl $t0,$t0,1
  136.        
  137.         bne $t0,$t2,error
  138.         j acertor
  139.         jr $ra 
  140.        
  141. op_slt:
  142.         lw $t0,in1
  143.         li $t1,-1
  144.         li $t2,0
  145.         li $a0,10
  146.        
  147.         slt $t0,$t0,$t1
  148.        
  149.         bne $t0,$t2,error
  150.         j acertor
  151.         jr $ra
  152. op_sgt:
  153.         lw $t0,in1
  154.         lw $t1,in2
  155.         li $t2,1
  156.         li $a0,11
  157.        
  158.         sgt $t0,$t1,$t0
  159.        
  160.         bne $t0,$t2,error
  161.         j acertor
  162.         jr $ra
  163.        
  164. op_sra:
  165.         li $t0,32
  166.         li $t2,8
  167.         li $a0,12
  168.        
  169.         sra $t0,$t0,2
  170.        
  171.         bne $t0,$t2,error
  172.         j acertor
  173.         jr $ra
  174.        
  175. op_srav:
  176.         li $t0,32
  177.         li $t1,2
  178.         li $t2,8
  179.         li $a0,13
  180.        
  181.         srav $t0,$t0,$t1
  182.        
  183.         bne $t0,$t2,error
  184.         j acertor
  185.         jr $ra 
  186.        
  187. op_sllv:
  188.         li $t0,2
  189.         li $t1,2
  190.         li $t2,8
  191.         li $a0,14
  192.        
  193.         sllv $t0,$t0,$t1
  194.        
  195.         bne $t0,$t2,error
  196.         j acertor
  197.         jr $ra 
  198.        
  199. op_srlv:
  200.         li $t0,32
  201.         li $t1,1
  202.         li $t2,16
  203.         li $a0,15
  204.        
  205.         srlv $t0,$t0,$t1
  206.        
  207.         bne $t0,$t2,error
  208.        
  209.         j acertor
  210.         jr $ra
  211.        
  212. op_xor:
  213.         li $t0,2
  214.         li $t1,3
  215.         li $t2,1
  216.         li $a0,16
  217.        
  218.         xor $t0,$t0,$t1
  219.        
  220.         bne $t0,$t2,error
  221.         j acertor
  222.         jr $ra 
  223.        
  224. op_nor:
  225.         li $t0,0
  226.         li $t1,0
  227.         li $t2,-1
  228.         li $a0,17
  229.        
  230.         nor $t0,$t0,$t1
  231.        
  232.         bne $t0,$t2,error
  233.         j acertor
  234.         jr $ra 
  235.        
  236. op_sltu:
  237.         lw $t0,in1
  238.         li $t1,-1
  239.         li $t2,1
  240.         li $a0,18
  241.        
  242.         sltu $t0,$t0,$t1
  243.        
  244.         bne $t0,$t2,error
  245.         j acertor
  246.         jr $ra                 
  247.        
  248. op_lui:
  249.         lui $t0,0xFFFF
  250.         la $t2,0xFFFF0000
  251.         li $a0,19      
  252.        
  253.         bne $t0,$t2,error
  254.         j acertor
  255.         jr $ra 
  256.        
  257. op_div:
  258.         addi $sp,$sp,-4
  259.         sw $ra,0($sp)
  260.  
  261.         li $t0,31
  262.         li $t1,2
  263.         li $t2,15
  264.         li $a0,20
  265.                
  266.         div $t0,$t1
  267.         mflo $t0
  268.        
  269.         bne $t0,$t2,error      
  270.         jal acertor
  271.        
  272.         li $t0,0
  273.         sw $zero,0($zero)
  274.        
  275.         mfhi $t0
  276.         li $t2,1
  277.         li $a0,21
  278.         bne $t0,$t2,error
  279.        
  280.         lw $ra,0($sp)
  281.         addi $sp,$sp,4
  282.         j acertor
  283.         jr $ra
  284.        
  285. op_mthi_mtlo:
  286.         addi $sp,$sp,-4
  287.         sw $ra,0($sp)
  288.         li $t0,2
  289.         li $a0,22
  290.         li $t2,2
  291.        
  292.         mthi $t0
  293.         mfhi $t1
  294.        
  295.         bne $t1,$t2,chamaerror
  296.         jal acertor
  297.         j try2
  298.         chamaerror: j error
  299.         li $t0,0
  300.         try2:
  301.         lw $ra,0($sp)  
  302.         addi $sp,$sp,4
  303.        
  304.         sw $zero,0($zero)
  305.         li $a0,23
  306.         mtlo $t0
  307.         mflo $t1
  308.        
  309.         bne $t1,$t2,error
  310.         j acertor
  311.         jr $ra 
  312.        
  313. op_muls:
  314.         l.s $f0,in3                                                                                                                                                                                                                                                                                                                                                                                                                                    
  315.         l.s $f1,in4    
  316.         l.s $f2,cpmuls          #f2 = 6
  317.         li $a0,24
  318.        
  319.         mul.s $f0,$f0,$f1
  320.        
  321.         c.eq.s $f0,$f2
  322.         bc1f error
  323.         j acertor
  324.        
  325.         jr $ra 
  326.        
  327. op_adds:
  328.         l.s $f0,in3                                                                                                                                                                                                                                                                                                                                                                                                                                    
  329.         l.s $f1,in4    
  330.         l.s $f2,cpadds 
  331.         li $a0,25
  332.        
  333.         add.s $f0,$f0,$f1
  334.        
  335.         c.eq.s $f0,$f2
  336.         bc1f error
  337.         j acertor
  338.        
  339.         jr $ra                 
  340.  
  341. op_subs:
  342.         l.s $f0,in3
  343.         l.s $f1,in4
  344.         l.s $f2,cpsubs
  345.         li $a0,26
  346.        
  347.         sub.s $f0,$f1,$f0
  348.        
  349.         c.eq.s $f0,$f2
  350.         bc1f error
  351.         j acertor
  352.        
  353.         jr $ra
  354.  
  355. op_divs:
  356.         l.s $f0,in5
  357.         l.s $f1,in4
  358.         li $a0,27
  359.        
  360.         div.s $f1,$f1,$f0
  361.        
  362.         c.eq.s $f0,$f1
  363.         bc1f error
  364.         j acertor
  365.        
  366.         jr $ra
  367.  
  368. op_sqrt:
  369.         l.s $f0,in5
  370.         l.s $f1,in4
  371.         li $a0,28
  372.        
  373.         sqrt.s $f1,$f1
  374.        
  375.         c.eq.s $f1,$f0
  376.         bc1f error
  377.         j acertor
  378.        
  379.         jr $ra
  380.  
  381. op_abs:
  382.         l.s $f0,in5
  383.         l.s $f1,in6
  384.         li $a0,29
  385.        
  386.         abs.s $f1,$f1
  387.        
  388.         c.eq.s $f1,$f0
  389.         bc1f error
  390.         j acertor
  391.         jr $ra
  392.        
  393. op_neg:
  394.         l.s $f0,in5
  395.         l.s $f1,in6
  396.         li $a0,30
  397.        
  398.         neg.s $f0,$f0
  399.        
  400.         c.eq.s $f1,$f0
  401.         bc1f error
  402.         j acertor
  403.         jr $ra
  404.        
  405. op_ceq:
  406.         l.s $f0,in5
  407.         l.s $f1,in5
  408.         li $a0,31
  409.  
  410.         c.eq.s $f1,$f0
  411.         bc1f error
  412.         j acertor
  413.         jr $ra
  414.        
  415. op_clt:
  416.         l.s $f0,in4
  417.         l.s $f1,in5
  418.         li $a0,32
  419.  
  420.         c.lt.s $f1,$f0
  421.         bc1f error
  422.         j acertor
  423.         jr $ra
  424.  
  425. op_cle:
  426.         l.s $f0,in4
  427.         l.s $f1,in5
  428.         li $a0,33
  429.  
  430.         c.le.s $f1,$f0
  431.         bc1f error
  432.         j acertor
  433.         jr $ra
  434.        
  435. op_cvtsw:
  436.         l.s $f0,in5
  437.         lw $t0,in2
  438.         cvt.w.s $f1,$f0
  439.         mfc1 $t1,$f1
  440.         li $a0,34
  441.  
  442.         beq $t1,$t0,sai
  443.         j error
  444. sai:
  445.         j acertor
  446.         jr $ra
  447.  
  448. op_cvtws:
  449.         lw $t0,in2
  450.         mtc1 $t0,$f1
  451.         cvt.s.w $f1,$f1
  452.         l.s $f0,in5
  453.         li $a0,35
  454.  
  455.         c.eq.s $f1,$f0
  456.         bc1f error
  457.         j acertor
  458.         jr $ra
  459.        
  460.                
  461. main:
  462.         #ULA                    #codigo de erro
  463.         jal soma                #1
  464.         li $t0,0
  465.         sw $zero,0($t0)
  466.         jal multiplicacao       #2
  467.         li $t0,0
  468.         sw $zero,0($t0)
  469.         jal subtracao           #3
  470.         li $t0,0
  471.         sw $zero,0($t0)
  472.         jal op_and              #4
  473.         li $t0,0
  474.         sw $zero,0($t0)
  475.         jal op_or               #5
  476.         li $t0,0
  477.         sw $zero,0($t0)
  478.         jal mfhi_mflo           #6/7
  479.         li $t0,0
  480.         sw $zero,0($t0)
  481.         #jal op_sll             #8
  482.         li $t0,0
  483.         #sw $zero,0($t0)
  484.         #jal op_srl             #9
  485.         li $t0,0
  486.         #sw $zero,0($t0)
  487.         jal op_slt              #10
  488.         li $t0,0
  489.         sw $zero,0($t0)
  490.         jal op_sgt              #11
  491.         li $t0,0
  492.         sw $zero,0($t0)
  493.         #jal op_sra             #12
  494.         li $t0,0
  495.         #sw $zero,0($t0)
  496.         jal op_srav             #13
  497.         li $t0,0
  498.         sw $zero,0($t0)
  499.         jal op_sllv             #14
  500.         li $t0,0
  501.         sw $zero,0($t0)
  502.         jal op_srlv             #15
  503.         li $t0,0
  504.         sw $zero,0($t0)
  505.         jal op_xor              #16
  506.         li $t0,0
  507.         sw $zero,0($t0)
  508.         jal op_nor              #17    
  509.         li $t0,0
  510.         sw $zero,0($t0)
  511.         jal op_sltu             #18
  512.         li $t0,0
  513.         sw $zero,0($t0)
  514.         jal op_lui              #19
  515.         li $t0,0
  516.         sw $zero,0($t0)
  517.         jal op_div              #20/21
  518.         li $t0,0
  519.         sw $zero,0($t0)
  520.         jal op_mthi_mtlo        #22/23
  521.         li $t0,0
  522.         sw $zero,0($t0)
  523.        
  524.         #FPULA
  525.         jal op_muls             #24
  526.         li $t0,0
  527.         sw $zero,0($t0)
  528.         jal op_adds             #25
  529.         li $t0,0
  530.         sw $zero,0($t0)
  531.         jal op_subs             #26
  532.         li $t0,0
  533.         sw $zero,0($t0)
  534.         jal op_divs             #27
  535.         li $t0,0
  536.         sw $zero,0($t0)
  537.         jal op_sqrt             #28
  538.         li $t0,0
  539.         sw $zero,0($t0)
  540.         jal op_abs              #29
  541.         li $t0,0
  542.         sw $zero,0($t0)
  543.         jal op_neg              #30
  544.         li $t0,0
  545.         sw $zero,0($t0)
  546.         jal op_ceq              #31
  547.         li $t0,0
  548.         sw $zero,0($t0)
  549.         jal op_clt              #32
  550.         li $t0,0
  551.         sw $zero,0($t0)
  552.         jal op_cle              #33
  553.         li $t0,0
  554.         sw $zero,0($t0)
  555.         jal op_cvtsw            #34
  556.         li $t0,0
  557.         sw $zero,0($t0)
  558.         jal op_cvtws            #35
  559.         li $t0,0
  560.         sw $zero,0($t0)

Paste Guru is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

email@pasteguru.com
If the password of your old paste* is not working, please send us an email.
*old paste created before Mar 22, 2017
Raw Paste

Login or Register to edit or fork this paste. It's free.