Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ernanej/asm-histogram-calculation
Programa em assembly para arquitetura MIPS que calcula o histograma de um determinado vetor V e armazene em um vetor H. DCA0104 - Arquitetura de Computadores
https://github.com/ernanej/asm-histogram-calculation
arquitetura-de-computadores dca0104 mips mips-assembly
Last synced: 22 days ago
JSON representation
Programa em assembly para arquitetura MIPS que calcula o histograma de um determinado vetor V e armazene em um vetor H. DCA0104 - Arquitetura de Computadores
- Host: GitHub
- URL: https://github.com/ernanej/asm-histogram-calculation
- Owner: ErnaneJ
- Created: 2023-06-30T13:05:27.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-30T13:23:55.000Z (over 1 year ago)
- Last Synced: 2024-10-24T21:59:18.256Z (2 months ago)
- Topics: arquitetura-de-computadores, dca0104, mips, mips-assembly
- Language: Assembly
- Homepage:
- Size: 97.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cálculo do histograma de um vetor - Assembly MIPS
O vetor `V` a seguir representa uma captura de `36` amostras de um sinal com `10` níveis de intensidade diferentes (indo de `0 até 9`).
```asm
V = [9, 5, 7, 5, 3, 4, 0, 2, 6, 4, 2, 5, 4, 1, 2, 1, 6, 2, 2, 3, 6, 3, 0, 0, 7, 8, 3, 4, 5, 4, 0, 5, 2, 9, 8, 7]
```Normalmente, em tarefas de processamento de sinais, sejam eles unidimensionais ou bidimensionais (como imagens digitais, por exemplo) uma ação comumente realizada é obter o histograma do sinal disponível.
O cálculo do histograma é a contagem do número de amostras existentes para cada intensidade que se apresenta nas amostras disponibilizadas. Ela se mostra por meio de um array H, em que cada elemento seu armazena a contagem de amostras que tem a intensidade igual ao valor que aparece em seu índice. Por exemplo, o elemento `H(0)` armazena a contagem de elementos de `V` que têm valor igual a `0`; `H(1)` armazena o total de elementos que têm valor `1` em `V`; e, assim, sucessivamente.
O histograma pode ser facilmente determinado através do seguinte algoritmo;
```
Declarar Lmax como o número máximo de intensidades do vetor analisado
Declarar TAM como o tamanho do vetor analisado
Para i = 0 até Lmax, fazer
H[i] = 0;
Para i = 0 até TAM, fazer
H[V[i]] = H[V[i]] + 1;
```O objetivo aqui é elaborar um programa em `assembly` para arquitetura `MIPS` que calcule o histograma do vetor `V` apresentado anteriormente e que armazene em um vetor `H`, previamente alocado na memória. O programa foi testado no simulador [MARS](http://courses.missouristate.edu/kenvollmar/mars/).
![Pré visualização da execução do programa no simulador MARS](./assets/run.png)
---
Universidade Federal do Rio Grande do Norte - UFRN
Departamento de Engenharia de Computação e Automação - Centro de Tecnologia
DCA0104 – Arquitetura de Computadores - Professor: Diogo Pinheiro Fernandes Pedrosa