{"id":13574248,"url":"https://github.com/he-mat/better_tutorial","last_synced_at":"2025-04-04T14:32:04.835Z","repository":{"id":217048512,"uuid":"80600615","full_name":"he-mat/better_tutorial","owner":"he-mat","description":"short NASM tutorial","archived":false,"fork":false,"pushed_at":"2017-02-17T08:21:08.000Z","size":67,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-05T09:44:02.831Z","etag":null,"topics":["assembly","nasm","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Assembly","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/he-mat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.TXT","contributing":null,"funding":null,"license":null,"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":"2017-02-01T08:10:36.000Z","updated_at":"2023-02-27T15:26:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"4779c21a-81b3-450d-a2c6-289500eb5c5d","html_url":"https://github.com/he-mat/better_tutorial","commit_stats":null,"previous_names":["he-mat/better_tutorial"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/he-mat%2Fbetter_tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/he-mat%2Fbetter_tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/he-mat%2Fbetter_tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/he-mat%2Fbetter_tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/he-mat","download_url":"https://codeload.github.com/he-mat/better_tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247194220,"owners_count":20899448,"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":["assembly","nasm","tutorial"],"created_at":"2024-08-01T15:00:48.767Z","updated_at":"2025-04-04T14:32:04.822Z","avatar_url":"https://github.com/he-mat.png","language":"Assembly","readme":"## better_tutorial\n\n\u003ecompared to the first tutorial I wrote, which was basically just notes.\n\n\n## Synopsis\n\nThis project is aimed at people who want to learn the NASM x86 Assembler and have no prior experience with it.\n\nIt's best to start with reading the notes to about the middle, then you can either start the lessons, have a go at\nprogramming with NASM yourself or continue reading the advanced notes.\n\n\n## Code Example\n```assembly\n; Hello World Program\n\nSECTION .data\nmsg     db      'Hello World!', 0Ah     ; assign msg variable with your message string\n\nSECTION .text\n global  _start\n\n_start:\n\nmov   eax, 4    ; invoke SYS_WRITE (kernel opcode 4)\nmov   ebx, 1    ; write to the STDOUT file\nmov   ecx, msg  ; move the memory address of our message string into ecx\nmov   edx, 13   ; number of bytes to write - one for each letter plus 0Ah (line feed character)\nint   80h\n\nmov   eax, 1    ; invoke SYS_EXIT (kernel OPCODE 1)\nmov   ebx, 0    ; return 0 status on exit - 'No Errors'\nint   80h\n```\n\n## Motivation\n\nI wanted to create this project because I wanted to learn Assembly and thought that if I write down notes in an orderly manner somebody else might benefit from this as well. (Mervs looking at you)\n\n\n## Installation\n\nJust copy this project to your PC and start reading the notes.\nThe easiest way to do this is with git:\n```bash\ngit clone https://github.com/he-mat/better_tutorial.git\n```\nThis command will download a directory called \"better_tutorial\" to your current directory.\nIt is recommended that you start by reading the notes.TXT file, though you could directly start with the lessons.\n\nIf you want to compile and link your programs with ease, follow these steps:\n- create the directory /bin/scripts\n- copy both files compile and compile32 into the newly created directory\n- add the directory to your PATH by adding the following lines add the bottom\n```bash\nif [ -d \"/bin/scripts\" ]; then\n  PATH=\"$PATH:/bin/scripts/\"\nfi\n```\n- enter this to restart bash:\n```bash\n$ exec bash\n```\n- done!\n\nNow you can use the two scripts from anywhere! Just enter compile -h for first time help.\n","funding_links":[],"categories":["Assembly"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhe-mat%2Fbetter_tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhe-mat%2Fbetter_tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhe-mat%2Fbetter_tutorial/lists"}