Trabalho De Arquitetura E Organiza O De Computadores 2 6
Isabela Matheus Lopes 11111BCC017
Mariana Luiza Volpi Fiori 11211BCC039
Rayanne de Cassia Silva Rodrigues 11211BCC041
1. Funcionamento do Simulador
A janela do SPIM encontra-se dividida em 4 painéis. O primeiro painel, chama
Registers, ficam os registradores internos do MIPS, mostrando seu conteúdo. Na segunda parte, Text Segment, mostra as instruções do programa e também as instruções do núcleo (Kernel) do MIPS. A terceira parte, chama de Data Segment, mostra os dados (DATA), a pilha (STACK) e os dados do kernel (KERNEL DATA). A quarta parte é o Messages, onde aparece as mensagens ao usuário, como mensagens de erros, sucesso, etc. E de acordo com a simulação do programa o console faz o intermédio de entrada e saída de dados com o usuário.
Nesse programa:
O simulador mostra os passos da execução do programa assembly, que implementa a função itoa, a qual converte um inteiro para caracteres. No console aparece uma mensagem para o usuário inserir um número que se quer converter, e em seguida imprime esse número com seus dígitos convertidos para caractere.
Para isso o programa tem dois procedimentos, um que faz a conversão e armazena os caracteres obtidos dessa conversão em uma string, porem essa estará na ordem inversa, por isso a necessidade de outro procedimento que devolva na ordem correta. Exemplo de execuções:
i.
Digite um numero:
10
10
ii.
Digite um numero:
D
0
iii.
Digite um numero:
6.5
6
2. Principais porções do código MIPS implementadas, comentadas
1 .data
2 hello:.ascii "\nDigite um numero:"
3 newln:.asciiz "\n"
4 str:.space 32
5 .text
6 reverse:
7 addi $t2, $a0, -1
8 lbu $t3, 1($t2)
9 beqz $t3, end_strlen
10 strlen_loop:
11 addi $t2, $t2, 1
12 lbu $t3, 1($t2)
13 bnez $t3, strlen_loop
14 end_strlen:
15 bge $a0, $t2, end_reverse
16 reverse_loop:
17 lbu $t3, ($a0)
18 lbu $t4, ($t2)
19 sb $t3, ($t2)
20 sb $t4, ($a0)
21 addi $a0, $a0, 1
22 addi $t2, $t2, -1
23 blt $a0, $t2, reverse_loop
24