{"id":17675603,"url":"https://github.com/ernanej/asm-histogram-calculation","last_synced_at":"2025-10-16T02:08:49.281Z","repository":{"id":177609442,"uuid":"660633774","full_name":"ErnaneJ/asm-histogram-calculation","owner":"ErnaneJ","description":"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","archived":false,"fork":false,"pushed_at":"2023-06-30T13:23:55.000Z","size":100,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T19:00:37.477Z","etag":null,"topics":["arquitetura-de-computadores","dca0104","mips","mips-assembly"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ErnaneJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-30T13:05:27.000Z","updated_at":"2023-06-30T14:49:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"dfde64e9-d1b8-4739-81ce-b16d6946c482","html_url":"https://github.com/ErnaneJ/asm-histogram-calculation","commit_stats":null,"previous_names":["ernanej/histogram-calculation","ernanej/asm-histogram-calculation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErnaneJ%2Fasm-histogram-calculation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErnaneJ%2Fasm-histogram-calculation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErnaneJ%2Fasm-histogram-calculation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErnaneJ%2Fasm-histogram-calculation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ErnaneJ","download_url":"https://codeload.github.com/ErnaneJ/asm-histogram-calculation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246351017,"owners_count":20763232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arquitetura-de-computadores","dca0104","mips","mips-assembly"],"created_at":"2024-10-24T07:22:51.525Z","updated_at":"2025-10-16T02:08:49.211Z","avatar_url":"https://github.com/ErnaneJ.png","language":"Assembly","readme":"# Cálculo do histograma de um vetor - Assembly MIPS \n\nO 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`).\n\n```asm\n  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]\n```\n\nNormalmente, 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.\n\nO 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.\n\nO histograma pode ser facilmente determinado através do seguinte algoritmo;\n\n```\n  Declarar Lmax como o número máximo de intensidades do vetor analisado\n  Declarar TAM como o tamanho do vetor analisado\n  \n  Para i = 0 até Lmax, fazer\n    H[i] = 0;\n  Para i = 0 até TAM, fazer\n    H[V[i]] = H[V[i]] + 1;\n```\n\nO 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/).\n\n![Pré visualização da execução do programa no simulador MARS](./assets/run.png)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  Universidade Federal do Rio Grande do Norte - UFRN \u003cbr/\u003e\n  Departamento de Engenharia de Computação e Automação - Centro de Tecnologia  \u003cbr/\u003e\n  DCA0104 – Arquitetura de Computadores - Professor: Diogo Pinheiro Fernandes Pedrosa\n\u003c/div\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fernanej%2Fasm-histogram-calculation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fernanej%2Fasm-histogram-calculation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fernanej%2Fasm-histogram-calculation/lists"}