{"id":16005117,"url":"https://github.com/eld/hackassembler","last_synced_at":"2026-04-25T03:37:06.448Z","repository":{"id":26962074,"uuid":"30425269","full_name":"ELD/HackAssembler","owner":"ELD","description":"Assembler for the nand2tetris Hack platform","archived":false,"fork":false,"pushed_at":"2015-05-01T00:25:17.000Z","size":1336,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-15T18:38:58.352Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","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/ELD.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}},"created_at":"2015-02-06T17:54:04.000Z","updated_at":"2018-05-17T12:32:12.000Z","dependencies_parsed_at":"2022-08-24T15:03:58.907Z","dependency_job_id":null,"html_url":"https://github.com/ELD/HackAssembler","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ELD/HackAssembler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2FHackAssembler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2FHackAssembler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2FHackAssembler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2FHackAssembler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ELD","download_url":"https://codeload.github.com/ELD/HackAssembler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ELD%2FHackAssembler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27758427,"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","status":"online","status_checked_at":"2025-12-16T02:00:10.477Z","response_time":57,"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":[],"created_at":"2024-10-08T11:02:15.487Z","updated_at":"2025-12-16T02:05:56.500Z","avatar_url":"https://github.com/ELD.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hack Assembler from Nand2tetris\n\n### README:\n###### You may look at the code, but you should not use it. Don’t deprive yourself of the opportunity to write the assembler yourslf as part of the nand2tetris course.\n\nThis is the Hack Assembler from the nand2tetris. It was written in standard C++ with the tests leveraging the Boost\nUnit Test Framework.\n\nThe Makefile has a few different targets. Simply typing `make -j[N]` where `-j[N]` is the number of threads\nyou want to build with (the more threads, the faster it compiles; the Makefile supports incremental builds)\nbuilds the core project. The core project\nonly relies on a C++11 compliant compiler with the latest STL (support `std::regex`). Once the project has been\nbuilt, the executable will be placed in the `target/` directory with a name of `hackasm`. In order to run the\nassembler simply type `./target/hackasm [filename]`. The assembler will accept any path anywhere in the\nfilesystem and will place the assembled `.hack` file in the same directory location. For example, if you\ninvoked the assembler as such: `./target/hackasm ../pong/Pong.asm` the resulting `Pong.hack` file would be\ncreated in `../pong/Pong.hack`.\n\nThe other targets pertain to testing and experimental code. The assembler comes with a battery of unit tests\nwritten with the helpt of the Boost Unit Test Framework. These, while not necessary to build, are built with\nthe `tester` target. When compiling the tests, an environment variable `$BOOST_LIBS` is required to be set\nand point to the root directory where the Boost libraries are installed. The `experimental` target\ndoesn't require anything other than a standard C++11 compliant compiler.\n\nThe project was developed on a 15\" Retina Macbook Pro running Mac OSX Yosemite and compiled with Clang 3.5.\nThe project has been test built an an Ubuntu 14.04 virtual machine running GCC 4.9 and no extra libraries\n(the core project builds fine without the Boost libraries). Let me know if you have any unseen difficulties\nbuilding the project.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feld%2Fhackassembler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feld%2Fhackassembler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feld%2Fhackassembler/lists"}