{"id":19571065,"url":"https://github.com/taffarel55/risc-v","last_synced_at":"2026-06-13T17:32:54.891Z","repository":{"id":115772788,"uuid":"361229519","full_name":"taffarel55/risc-v","owner":"taffarel55","description":"Repositório com intuito de reunir lista com as instruções mais básicas para risc-v para inteiros 32 bits e alguns exemplos úteis.","archived":false,"fork":false,"pushed_at":"2021-04-24T23:19:28.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-26T10:45:39.866Z","etag":null,"topics":["arquitetura-de-computadores","assembly","risc-v","risc-v-assembly"],"latest_commit_sha":null,"homepage":"","language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taffarel55.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-04-24T17:51:09.000Z","updated_at":"2021-04-24T23:17:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"64b98e6e-b2f7-4843-817e-4461a4b1a0d2","html_url":"https://github.com/taffarel55/risc-v","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/taffarel55/risc-v","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taffarel55%2Frisc-v","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taffarel55%2Frisc-v/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taffarel55%2Frisc-v/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taffarel55%2Frisc-v/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taffarel55","download_url":"https://codeload.github.com/taffarel55/risc-v/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taffarel55%2Frisc-v/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34294411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","assembly","risc-v","risc-v-assembly"],"created_at":"2024-11-11T06:17:22.285Z","updated_at":"2026-06-13T17:32:54.886Z","avatar_url":"https://github.com/taffarel55.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"#\"\u003e\u003cimg src=\"assets/risc-v.png\" alt=\"Just a risc-v icon\" width=\"60\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  Risc-v: Lista de instruções com exemplos \n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\nRepositório com intuito de reunir lista com as instruções mais básicas para risc-v para inteiros 32 bits e alguns exemplos úteis. \n\n## Lista de instruções básicas:\n\n|   Função   |        Tipo         |       Comando       |\n|:----------:|:-------------------:|:-------------------:|\n|    Load    |        Byte         |  `LB rd, rs1, imm`  |\n|    Load    |      Halfword       |  `LH rd, rs1, imm`  |\n|    Load    |        Word         |  `LW rd, rs1, imm`  |\n|    Load    |    Byte Unsigned    | `LBU rd, rs1, imm`  |\n|    Load    |    Half Unsigned    | `LHU rd, rs1, imm`  |\n|   Stores   |        Byte         | `SB rs1, rs2, imm`  |\n|   Stores   |      Halfword       | `SH rs1, rs2, imm`  |\n|   Stores   |        Word         | `SW rs1, rs2, imm`  |\n|   Shift    |        Left         |  `SLL rd,rs1,rs2`   |\n|   Shift    |   Left Immediate    | `SLLI rd,rs1,shamt` |\n|   Shift    |        Right        |  `SRL rd,rs1,rs2`   |\n|   Shift    |   Right Immediate   | `SRLI rd,rs1,shamt` |\n|   Shift    |  Right Arithmetic   |  `SRA rd,rs1,rs2`   |\n|   Shift    |   Right Arith Imm   | `SRAI rd,rs1,shamt` |\n| Arithmetic |         ADD         |  `ADD rd,rs1,rs2`   |\n| Arithmetic |    ADD Immediate    |  `ADDI rd,rs1,im`   |\n| Arithmetic |      SUBtract       |  `SUB rd,rs1,rs2`   |\n| Arithmetic |   Load Upper Imm    |    `LUI rd,imm`     |\n| Arithmetic | Add Upper Imm to PC |    `LUI rd,imm`     |\n|  Logical   |         XOR         |  `XOR rd,rs1,rs2`   |\n|  Logical   |    XOR Immediate    |  `XORI rd,rs1,imm`  |\n|  Logical   |         OR          |   `OR rd,rs1,rs2`   |\n|  Logical   |    OR Immediate     |  `ORI rd,rs1,imm`   |\n|  Logical   |         AND         |  `AND rd,rs1,rs2`   |\n|  Logical   |    AND Immediate    |  `ANDI rd,rs1,imm`  |\n|  Compare   |        Set \u003c        |  `SLT rd,rs1,rs2`   |\n|  Compare   |   Set \u003c Immediate   |  `SLTI rd,rs1,imm`  |\n|  Compare   |   Set \u003c Unsigned    |  `SLTU rd,rs1,rs2`  |\n|  Compare   | Set \u003c Imm Unsigned  | `SLTIU rd,rs1,imm`  |`\n|  Branches  |          =          |  `BEQ rs1,rs2,imm`  |\n|  Branches  |          ≠          |  `BNE rs1,rs2,imm`  |\n|  Branches  |          \u003c          |  `BLT rs1,rs2,imm`  |\n|  Branches  |          ≥          |  `BGE rs1,rs2,imm`  |\n|  Branches  |     \u003c Unsigned      | `BLTU rs1,rs2,imm`  |\n|  Branches  |     ≥ Unsigned      |  `BGU rs1,rs2,imm`  |\n| Jump \u0026 Link |         J\u0026L         |    `JAL rd,imm`     |\n| Jump \u0026 Link |    J\u0026L Register     |  `JALR rd,rs1,imm`  |\n\n\n## Exemplos\n1. basic arithmetic\n    - [add_sub.s](https://github.com/taffarel55/risc-v/blob/main/1.%20basic%20arithmetic/add_sub.s) - Mostrando como somar ou subtrair números\n2. data transfer\n    - [load.s](https://github.com/taffarel55/risc-v/blob/main/2.%20data%20transfer/load.s) - Como realizar as operações LB, LH E LW\n    - [store.s](https://github.com/taffarel55/risc-v/blob/main/2.%20data%20transfer/store.s) - Como realizar as operações SB, SH E SW\n3. control flow\n    - [beq.s](https://github.com/taffarel55/risc-v/blob/main/3.%20control%20flow/beq.s) - Exemplo do uso de BEQ para fazer `if else`\n    - [bne.s](https://github.com/taffarel55/risc-v/blob/main/3.%20control%20flow/bne.s) - Exemplo do uso de BNE para fazer `if else`\n    - [loop.s](https://github.com/taffarel55/risc-v/blob/main/3.%20control%20flow/loop.s) - Exemplo de um loop `do while`, `for` ou `while`\n- examples\n    - [fat.s](https://github.com/taffarel55/risc-v/blob/main/examples/fat.s) - Implementação de de um programa que calcula o fatorial\n    - [vetor.s](https://github.com/taffarel55/risc-v/blob/main/examples/vetor.s) - Uso de ponteiros para trabalhar com vetores\n\n## Contribuindo\n\nPull requests são sempre bem vindos, posso ter esquecido de alguma coisa, ou me passado em algo. Se for uma mudança grande, abre uma Issue antes pra gente discutir as mudanças. Se quiser adicionar um exemplo, sinta-se a vontade! Obrigado! :heart_eyes:\n\n## Licença\n\n[GNU General Public License v3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaffarel55%2Frisc-v","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaffarel55%2Frisc-v","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaffarel55%2Frisc-v/lists"}