https://github.com/joaorafa19/mips-assembly
https://github.com/joaorafa19/mips-assembly
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/joaorafa19/mips-assembly
- Owner: JoaoRafa19
- Created: 2024-12-08T13:14:24.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-12-18T19:23:08.000Z (6 months ago)
- Last Synced: 2025-02-03T10:46:30.616Z (4 months ago)
- Language: Assembly
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Projetos em Assembly - MIPS
Bem-vindo ao repositório de programas escritos em Assembly para o simulador **MARS (MIPS Assembler and Runtime Simulator)**.
Esses códigos foram desenvolvidos como parte de um aprendizado prático em programação de baixo nível.---
## 📂 Programas Incluídos
### 1️⃣ **Hello World**
- **Descrição**: Um programa simples que exibe a mensagem "Hello World".
- **Objetivo**: Demonstrar o uso de instruções básicas e saída de dados no MARS.
- **Código:**
```asm
.data
msg: .asciiz "Hello World\n".text
.globl main
main:
li $v0 4 # saída
la $a0, msg # carrega no a0 a mensagem
syscall # chama saída de sistema
li $v0, 10 # encerra o programa
syscall # chamada de sistema
```---
### 2️⃣ **Soma de Números**
- **Descrição**: Realiza a soma de dois números inteiros, adiciona um valor constante e exibe o resultado.
- **Objetivo**: Explorar operações aritméticas e manipulação de registradores.
- **Código:**
```asm
.data
newline: .asciiz "\n"
res: .word 0.text
.globl main
main:
li $a2, 10
li $a3, 11
add $a1, $a2, $a3
addi $a1, $a1, 100
sw $a1, res
lw $a0, res
li $v0, 1
syscall
li $v0, 4
la $a0, newline
syscall
li $v0, 10
syscall
```---
### 3️⃣ **Conversor Celsius para Fahrenheit**
- **Descrição**: Converte um valor em Celsius para Fahrenheit e exibe o resultado com uma vírgula (parte inteira e decimal).
- **Objetivo**: Demonstrar manipulação de entrada de usuário, cálculos aritméticos e saída de dados.
- **Código:**
```asm
.data
prompt: .asciiz "Digite um numero:"
outp: .asciiz "O resultado em Fahrenheit: "
virgula: .ascii ",".text
.globl main
main:
li $v0, 4 # Imprime o prompt
la $a0, prompt
syscall
li $v0, 5 # Lê um número inteiro
syscall
move $t1, $v0
li $t3, 9
mul $t3, $t1, $t3
div $t3, 5
mflo $t5
addi $t5, $t5, 32
# Saída do resultado
li $v0, 4
la $a0, outp
syscall
li $v0, 1
move $a0, $t5
syscall
```---
## 🛠️ Pré-requisitos
Para executar os programas, é necessário:
1. Baixar e instalar o simulador **MARS**: [MARS Download](http://courses.missouristate.edu/kenvollmar/mars/download.htm)
2. Carregar os arquivos `.asm` no simulador.
3. Executar os programas passo a passo para observar seu funcionamento.---
## 📜 Autor
- **João Pedro**
- 📅 Data: 08/12/2024
- 🌟 Versão: 1.0 (inicial)---
## 📝 Licença
Este projeto é disponibilizado sob a licença MIT. Sinta-se à vontade para usá-lo e adaptá-lo conforme necessário.
---
Aproveite e divirta-se explorando o mundo do Assembly! 🚀