{"id":28645037,"url":"https://github.com/apavazza/asm-interpreter","last_synced_at":"2026-04-29T10:04:57.061Z","repository":{"id":294320765,"uuid":"963985926","full_name":"apavazza/asm-interpreter","owner":"apavazza","description":"Interactive assembly interpreter written in Rust","archived":false,"fork":false,"pushed_at":"2025-05-19T21:27:56.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-13T00:40:50.938Z","etag":null,"topics":["assembly","interpreter","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/apavazza.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,"zenodo":null}},"created_at":"2025-04-10T14:11:25.000Z","updated_at":"2025-05-19T21:27:59.000Z","dependencies_parsed_at":"2025-05-19T22:39:11.906Z","dependency_job_id":"ee5e8038-e153-4623-9377-c09bfc155907","html_url":"https://github.com/apavazza/asm-interpreter","commit_stats":null,"previous_names":["apavazza/asm-interpreter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/apavazza/asm-interpreter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apavazza%2Fasm-interpreter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apavazza%2Fasm-interpreter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apavazza%2Fasm-interpreter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apavazza%2Fasm-interpreter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apavazza","download_url":"https://codeload.github.com/apavazza/asm-interpreter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apavazza%2Fasm-interpreter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32420370,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["assembly","interpreter","rust"],"created_at":"2025-06-13T00:31:38.896Z","updated_at":"2026-04-29T10:04:57.047Z","avatar_url":"https://github.com/apavazza.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Assembly Interpreter\n\n[![Tests](https://github.com/apavazza/asm-interpreter/actions/workflows/tests.yml/badge.svg)](https://github.com/apavazza/asm-interpreter/actions/workflows/tests.yml)\n[![Build](https://github.com/apavazza/asm-interpreter/actions/workflows/build-and-release.yml/badge.svg)](https://github.com/apavazza/asm-interpreter/actions/workflows/build-and-release.yml)\n![Rust version](https://img.shields.io/badge/Rust-1.87%2B-dea584.svg)\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](LICENSE)\n\nAssembly Interpreter is a simple interactive command-line tool built in Rust. It simulates basic assembly language operations for educational and testing purposes.\n\n## Supported Instructions\n\n- **MOV `\u003cregister\u003e, \u003cvalue\u003e`**  \n  Sets the given register to a specified value. The value can be an immediate constant prefixed with `#` (supports hexadecimal with `#0x` and decimal, e.g. `#15`) or the value from another valid register.  \n  *Example*: `MOV r0, #15`\n\n- **ADD `\u003cdest_register\u003e, \u003creg_operand\u003e, \u003coperand\u003e`**  \n  Adds the value in the first operand register and the second operand (which may be an immediate constant or a register) and stores the result in the destination register.  \n  *Example*: `ADD r0, r1, #5`\n\n- **SUB `\u003cdest_register\u003e, \u003creg_operand\u003e, \u003coperand\u003e`**  \n  Subtracts the second operand (immediate or register value) from the value in the first operand register and stores the result in the destination register.  \n  *Example*: `SUB r0, r1, r2`\n\n- **LSL `\u003cdest_register\u003e, \u003csource_register\u003e, \u003cshift_amount\u003e`**  \n  Performs a logical left shift on the source register by the specified shift amount and stores the result in the destination register.  \n  *Example*: `LSL r0, r1, #2`\n\n- **LSR `\u003cdest_register\u003e, \u003csource_register\u003e, \u003cshift_amount\u003e`**  \n  Performs a logical right shift on the source register by the specified shift amount and stores the result in the destination register.  \n  *Example*: `LSR r0, r1, #3`\n\n- **ASR `\u003cdest_register\u003e, \u003csource_register\u003e, \u003cshift_amount\u003e`**  \n  Performs an arithmetic right shift on the source register by the specified amount and stores the result in the destination register.  \n  *Example*: `ASR r0, r1, #1`\n\n- **ROR `\u003cdest_register\u003e, \u003csource_register\u003e, \u003crotate_amount\u003e`**  \n  Rotates the bits of the source register to the right by the specified rotate amount and stores the result in the destination register.  \n  *Example*: `ROR r0, r1, #4`\n\n- **RRX `\u003cdest_register\u003e, \u003csource_register\u003e`**  \n  Performs a rotate-right with extend (RRX) on the source register (rotates right by 1 bit using an assumed zero carry) and stores the result in the destination register.  \n  *Example*: `RRX r0, r1`\n\n- **PRINT `\u003cregister\u003e`**  \n  Displays the current value of the specified register.  \n  *Example*: `PRINT r0`\n\n- **EXIT**  \n  Terminates the program.\n\n## Example Usage\n\n```shell\nMOV r1, #5\nMOV r2, #10\nADD r3, r1, r2\nSUB r4, r2, r1\nLSL r5, r1, #3\nLSR r6, r2, #1\nASR r7, r1, #2\nROR r8, r2, #2\nRRX r9, r1\nPRINT r3\nPRINT r4\nEXIT\n```\n\n## Additional Notes\n\n- Registers that have not been explicitly set are assumed to have a default value of `0`.\n- The interpreter expects commands to be well-formed and does not perform extensive input validation.\n- Commas are required between command arguments as shown in the examples above.\n\n## License\n\nThis software is provided under the terms of the [GNU General Public License v3.0](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapavazza%2Fasm-interpreter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapavazza%2Fasm-interpreter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapavazza%2Fasm-interpreter/lists"}