Advertisement
juneba

assembly_mult_com_soma

Mar 25th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.  
  3.  
  4. .text
  5.     # s0 = a
  6.     li $v0 , 5
  7.     syscall
  8.     add $s0,$zero,$v0
  9. #   s1 = b
  10.     li $v0,5
  11.     syscall
  12.     add $s1,$zero,$v0
  13. #add $s0,$zero,5
  14. #   add $s1,$zero,6
  15.     #checa se algum dos numeros é zero.
  16.     beq $s0,$zero,zero
  17.     beq $s1,$zero,zero
  18.        
  19.     add $t0,$zero,$zero
  20.     add $t1,$zero,$zero
  21.        
  22.     slti $t0,$s0,0
  23.     slti $t1,$s1,0
  24.     #muda a funcao se a tiver sido positivo.
  25.     beq $t0, $zero, aFoiPositivo
  26.     b aFoiNegativo
  27.    
  28.    
  29.    
  30.    
  31.     aFoiPositivo:
  32.         beq $t1, $zero, ambosPositivos
  33.         b aPositivoFinal
  34.        
  35.     aFoiNegativo:
  36.         beq $t1,$zero, bPositivoFinal
  37.         b ambosNegativos
  38.    
  39.     ambosNegativos:
  40.         add $t4,$s0,$zero
  41.         addi $s1,$s1,1
  42.         beq $s1,0,exit
  43.        
  44.         multAmbosNegativos:
  45.             add $t4,$s0,$t4
  46.             addi $s1,$s1,1
  47.             beq $s1,0,exit
  48.             b multAmbosNegativos
  49.        
  50.        
  51.    
  52.     #nessa função a > 0 , b < 0
  53.     aPositivoFinal:
  54.         add $t4,$zero,$s1
  55.         addi $s0,$s0,-1
  56.         beq $s0,$zero,exit
  57.         multDenovoAPositivo:
  58.             add $t4,$t4,$s1
  59.             addi $s0,$s0,-1
  60.             beq $s0,$zero,exit
  61.             b multDenovoAPositivo
  62.            
  63.        
  64.    
  65.     bPositivoFinal:
  66.         add $t4,$s0,$zero
  67.         addi $s1,$s1,-1
  68.         beq $s1,$zero,exit
  69.         multBPositivoFinalDenovo:
  70.             add $t4,$t4,$s0
  71.             addi $s1,$s1,-1
  72.             beq $s1,$zero,exit
  73.             b multBPositivoFinalDenovo
  74.            
  75.            
  76.            
  77.    
  78.     ambosPositivos:
  79.         #funcionando
  80.         add $t4,$zero,$s0
  81.         addi $s1,$s1,-1
  82.         beq $s1,0,exit
  83.        
  84.         multDenovoAmbosPositivos:
  85.         #temporaria = A
  86.        
  87.         add $t4 ,$t4,$s0
  88.         addi $s1,$s1,-1
  89.         beq $s1,0,exit
  90.         b multDenovoAmbosPositivos
  91.        
  92.         li $v0,10
  93.         syscall
  94.     zero:
  95.         #funcionando
  96.         addi $a0,$zero,0
  97.         li $v0,1
  98.         syscall
  99.         li $v0,10
  100.         syscall
  101.    
  102.     exit:
  103.         #imprimir valor e siar
  104.        
  105.         add $a0,$t4,$zero
  106.         li $v0,1
  107.         syscall
  108.        
  109.         li $v0,10
  110.         syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement