Professional Documents
Culture Documents
Registradores:
Nome Uso
$0 Constante de valor 0
$at Temporario do Assemby
$v0 - $v1 Valor de retorno na funo
$a0 - $a3 Argumentos da funo
$t0 - $t7 Variaveis temporarias
$s0 - $s7 Saved temporary
$t8 - $t9 Variaveis temporarias
$k0 - $k1 Temporarias operando no sistema
(OS)
$gp Ponteiro global
$sp Ponteiro estatico
$fp Ponteiro frame
$ra Endereo de retorno da funo
Imprimindo Texto
.data
Mensagem: .asciiz Mensagem a ser Imprimida
.text
li $v0, 4
la $a0, Mensagem
syscall
Imprimindo um caracter
.data
Caracter: .byte c
.text
li $v0, 11
la $a0, Caracter
syscall
Imprimindo um inteiro
.data
Numero: .word 25
.text
li $v0, 1
lw $a0, Numero
syscall
Imprimindo um Float
.data
Const: .float 3,14
.text
li $v0, 2
lwc1 $f12, Const
syscall
interessante usar esse comando quando se trabalha com array voc precisa
calcular um numero no array e assim voc pode pegar o valor no array.
.data
.text
addi $s0, $zero, 4
sll $t0, $s0, 2 # 4*2
2
=4*4=16
#Mostrando o resultado da multiplicao
li $v0, 1
add $a0, $zero, $t0
syscall
Vetores (array) e imprimindo um vetor com Rotina de Repetio (loop/whiel)
.data
Vetor: .space 12 #Aloca um vetor de int com 3 espaos (4*3)
Linha: .asciiz \n
.text
addi $s0, $zero, 4 # $s0=0
addi $s1, $zero, 10 # $s1=10
addi $s2, $zero, 12 # $s2=12
#Posio no vetor->$t0, iniciando em $t0=0
addi $t0, $ zero, 0 # $t0=0
sw $s0, Vetor($t0) # Coloca o valor de #s0 no posio $t0 do
vetor
addi $t0, $ t0, 4 #$t0=4, vai para a 2 pos do vetor
sw $s1, Vetor($t0) # Coloca o valor de #s1 no posio $t0 do
vetor
addi $t0, $ t0, 4 #$t0=8, vai para a 3 pos do vetor
sw $s2, Vetor($t0) # Coloca o valor de #s2 no posio $t0 do
vetor
addi $t0, $zero, 0 #Zerar $t0 para iniciar a cont. no while
while:
beq $t0, 12, saida #Condio de parada do while ()
lw $t6, Vetor($t0) # Poe contedo de Vetor[$t0] em $t6
#Imprime o valor que $t6 acabou de receber do vetor
li $v0, 1
move $a0, $t6
syscall
#Pula uma linha, imprimindo a mensagem \n
li $v0, 4
la $a0, Linha
syscall
addi $t0, $ t0, 4 #Acrescentando $t0 de 4 em 4 pois cada int
ocupa 4 bits e cada posio do vetor de int foi reservada de 4 em 4 bits
j while #Volta pro inicio do while, fazendo a repetio
saida:
li $v0, 10
syscall