{"id":20572318,"url":"https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4","last_synced_at":"2025-04-14T17:10:25.752Z","repository":{"id":216124051,"uuid":"740528660","full_name":"algosup/2023-2024-project-3-virtual-processor-team-4","owner":"algosup","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-11T14:18:35.000Z","size":1636,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-28T05:41:29.495Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/algosup.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}},"created_at":"2024-01-08T14:29:14.000Z","updated_at":"2024-05-17T13:10:27.000Z","dependencies_parsed_at":"2024-02-29T12:38:00.172Z","dependency_job_id":null,"html_url":"https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4","commit_stats":null,"previous_names":["algosup/2023-2024-project-3-virtual-processor-team-4"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algosup%2F2023-2024-project-3-virtual-processor-team-4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algosup%2F2023-2024-project-3-virtual-processor-team-4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algosup%2F2023-2024-project-3-virtual-processor-team-4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algosup%2F2023-2024-project-3-virtual-processor-team-4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/algosup","download_url":"https://codeload.github.com/algosup/2023-2024-project-3-virtual-processor-team-4/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248923764,"owners_count":21183954,"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":[],"created_at":"2024-11-16T05:19:26.206Z","updated_at":"2025-04-14T17:10:25.728Z","avatar_url":"https://github.com/algosup.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Project\n\nThis project is a student project provided by ALGOSUP, based in Vierzon. ( → see the [**call for tender**](/documents/.data/call_for_tender_2023-2024_project_3_virtual_processor.pdf))\nThe objective is to build a virtual processor and its components in C and to create our assembly language to interact with it.\n\nThe definition of the project is available in the [Project Charter](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/project_charter.md)\n\n\u003chr\u003e\n\n# The Members\n\n|Name|Role|Image|Link|\n| ------------------------- | --------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------- |\n| Benoît DE KEYN | Project Manager   | \u003cimg src=\"https://avatars.githubusercontent.com/u/146000855\" width=\"100px\"\u003e | [Benoît\\'s Github Profile](https://github.com/benoitdekeyn-algosup) |\n| Léo CHARTIER    | Program Manager   | \u003cimg src=\"https://avatars.githubusercontent.com/u/91249751\" width=\"100px\"\u003e | [Léo\\'s Github Profile](https://github.com/leo-chartier) |\n| Jason GROSSO    | Tech Lead         | \u003cimg src=\"https://avatars.githubusercontent.com/u/114397870\" width=\"100px\"\u003e | [Jason\\'s Github Profile](https://github.com/jasonGROSSO) |\n| Antoine PREVOST | Software Engineer | \u003cimg src=\"https://avatars.githubusercontent.com/u/81081224\" width=\"100px\"\u003e | [Antoine\\'s Github Profile](https://github.com/TechXplorerFR) |\n| Max BERNARD     | Software Engineer | \u003cimg src=\"https://avatars.githubusercontent.com/u/80251657?\" width=\"100px\"\u003e | [Max\\'s Github Profile](https://github.com/maxbernard3) |\n| Maxime THIZEAU  | Quality Assurance | \u003cimg src=\"https://avatars.githubusercontent.com/u/145995586\" width=\"100px\"\u003e | [Maxime\\'s Github Profile](https://github.com/MaximeTAlgosup) |\n\n\u003chr\u003e\n\n# The Manual\n\n## Download\n\nJust download the code of the project [from the last release](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/releases) or directly [the zip of the main code](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/archive/refs/heads/main.zip).\nThen, unzip it, and follow the instructions below ↓\n\n## Content of the release\n\nIn the release, the folder named 'src' contains all the code of the project.\nYou can find here the libraries folder and three files.c :\n\n- **assembler.c** : program reading an assembly file (.asm) to generate a machine code file (.bin)\n- **emulator.c** : program reading the machine code file (.bin) to execute the instructions through the virtual processor.\n- **test_emulator.c** : a test file which runs tests on all the emulator functions.\n- **libs/**\n   - **utils.h** : structures and tools used in both emulator and assembler programs\n   - **clock.h** : !not used! functions relative to the clock implementation to have a regular execution of the instructions.\n   - **preprocessor.h** : functions relatives to the reading of the assembly file, detecting synthetical and semantical errors: decode the .asm file and gives all the read instructions to the assembler part. \n   - **assembler.h** : functions relatives to the encoding part . It take the instructions given by the preprocessor, to build the machine code (.bin) file containing all the instructions in binary.\n   - **v_components.h** : functions to allocate the space in memory and create files that emulate the virtual component of the virtual processor architecture. It contains also the reading, writing and printing functions of the components' content.\n   - **v_instructions.h** : functions which execute the assembly instructions using the virtual components.\n\n## How to run an assembly file\nThe prerequisite is a compilator to compile .c files to executable files. We used **gcc compiler** for the entire project. So you have to refer to an online tutorial to install gcc on your machine.\n\n### Windows\n\nYou first need to have your program in assembly. Examples of assembly files are available [here](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/tree/main/documents/QA/testing) and the documentation for our [assembly language](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/functional/appendix_a_instruction_set_manual.pdf) an₫ [processor architecture](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/functional/functional_specification.md#system-architecture) are available in the [functional folder](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/tree/main/documents/functional) of the GitHub repository).\n\nOpen a terminal, and place you in the folder 'src'\n```cd \"C:/Users/.../src\"```\n\nCompile assembler.c :\n```gcc assembler.c -o assembler```\n\nCompile emulator.c :\n```gcc emulator.c -o emulator```\n\nRun the assembler with your assembly file:\n```assembler.exe path_to_your_file.asm ```\tHere the .bin file will be created in the same folder as the .asm file.\nOR\n```assembler.exe path_to_your_file.asm path_to_your_destination_folder ```\tHere the .bin file will be created in the destination folder.\n\nRun the emulator with the generated machine code file:\n```emulator.exe path_to_your_file.bin```\nHowever, as there is no way to see print in the terminal with the assembly code, you can use the following command to see the content of the registers at the end of the execution:\n```emulator.exe -d path_to_your_file.bin``` //execute the machine code and then print the registers through the 'debug' option.\n\n### Linux\n\nAdapt the command to place you in the right folder and then,\nadapt the code above replacing '.exe' extensions with '.o' extension \n\n### MacOS\n\nAdapt the command to place you in the right folder and then,\nadapt the code above replacing xxx.exe with ./xxx to execute the executable\n\n\u003chr\u003e\n\n# Related documents\n\n- [Functional specifications](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/functional/functional_specification.md)\n- [Technical specifications](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/technical/technical_specification.md)\n- [Test Plan](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/QA/test_plan.md)\n- [KPIs](https://algosup-my.sharepoint.com/:x:/p/benoit_dekeyn/ET3X56ZmAw1PpLeTLcSubvIBwjEooiU8LSl_ZvGzSR8ylA?e=STmP8k)\n- [Management artifacts](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/management/management_artifacts.md)\n- [Weekly Report](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/management/weekly_report/cumulative.md)\n- [Post-Mortem Analysis](https://github.com/algosup/2023-2024-project-3-virtual-processor-team-4/blob/main/documents/management/post-mortem_analysis.md)\n\n\u003chr\u003e\n\n# Dates\n\n- We started the project on Wednesday, January 17th, 2024\n\n- The deadline for the project is Friday, February 23rd\n\n- Date of the last official update of the project: 23/02/2024\n\n\u003chr\u003e\n\n# License\n\nThis project is under the [MIT License](LICENSE).\n\n\u003chr\u003e\n\u003cimg src=\"documents/.data/pictures/algosup_logo.png\" width=\"750px\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgosup%2F2023-2024-project-3-virtual-processor-team-4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falgosup%2F2023-2024-project-3-virtual-processor-team-4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgosup%2F2023-2024-project-3-virtual-processor-team-4/lists"}