{"id":16574802,"url":"https://github.com/anindya-prithvi/co_m21_assignment","last_synced_at":"2025-04-13T16:11:43.479Z","repository":{"id":47341517,"uuid":"392406568","full_name":"Anindya-Prithvi/CO_M21_Assignment","owner":"Anindya-Prithvi","description":"A python implementation of an Assembler (defined ISA) and a simulator based on the binary generated by the ISA. It also provides the memory access trace w.r.t. cycles.","archived":false,"fork":false,"pushed_at":"2021-09-02T13:29:48.000Z","size":2817,"stargazers_count":3,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T07:03:46.653Z","etag":null,"topics":["assembler","assembly","assembly-language-programming","assembly-simulation","simulator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anindya-Prithvi.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}},"created_at":"2021-08-03T17:52:48.000Z","updated_at":"2021-12-21T14:03:25.000Z","dependencies_parsed_at":"2022-09-24T23:53:14.676Z","dependency_job_id":null,"html_url":"https://github.com/Anindya-Prithvi/CO_M21_Assignment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anindya-Prithvi%2FCO_M21_Assignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anindya-Prithvi%2FCO_M21_Assignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anindya-Prithvi%2FCO_M21_Assignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anindya-Prithvi%2FCO_M21_Assignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anindya-Prithvi","download_url":"https://codeload.github.com/Anindya-Prithvi/CO_M21_Assignment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741199,"owners_count":21154255,"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":["assembler","assembly","assembly-language-programming","assembly-simulation","simulator"],"created_at":"2024-10-11T21:45:43.124Z","updated_at":"2025-04-13T16:11:43.456Z","avatar_url":"https://github.com/Anindya-Prithvi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CO M21 Assignment\nRepository of group 1010110\u003csub\u003e2\u003c/sub\u003e for Computer Organization, Monsoon 2021 semester, assignment at IIITD.\n\n## About the repository\n- This repository contains an Assembler `Simple-Assembler` and a simulator `SimpleSimulator`.\n- The assembler converts a given code (pertaining to the ISA, refer to `Assignment.pdf`) to it's binary equivalent. It is also capable of reporting descriptive errors with the line number. (Also the error is colored 😄)\n- The simulator processes such binaries and dumps the program counter and the registers while the program is running, and after an `hlt` instruction, it dumps the state of the memory. It is important to note that we follow a Von-Neumann Architecture (unified memory | Instruction memory, hlt, followed by variables). It also plots the graph of memory access per cycle and is not capable of handling exceptions.\n- `automated-testing` is a testing suite designed to testify the correctness of outputs from the `assembler` and `simulator`. It contains the traces, binaries and a few assembly codes.\n- `SimpleSimulator/plots/` contain all the plots generated by the simulator according to the timestamp (since epoch).\n\n## How to evaluate\n* Go to the `automatedTesting` directory and execute the `run` file with appropiate options passed as arguments.\n* Options available for automated testing:\n\t1. `--verbose`: Prints verbose output\n\t2. `--no-asm`: Does not evaluate the assembler\n\t3. `--no-sim`: Does not evaluate the simulator\n\n## How to run only the assembler or the simulator\n- Change directory to `Simple-Assembler` or `SimpleSimulator`.\n- Use `./run` (on bash) and enter your assembly code or binary, after entering add a newline and press `ctrl+D` to terminate stdin. \n- Alternatively, you can directly run `asm.py` or `samuelator.py`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanindya-prithvi%2Fco_m21_assignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanindya-prithvi%2Fco_m21_assignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanindya-prithvi%2Fco_m21_assignment/lists"}