{"id":15762037,"url":"https://github.com/harshkapadia2/assembly","last_synced_at":"2025-07-05T22:36:22.795Z","repository":{"id":198943494,"uuid":"701826491","full_name":"HarshKapadia2/assembly","owner":"HarshKapadia2","description":"Assembly language knowledgebase.","archived":false,"fork":false,"pushed_at":"2023-10-16T06:52:12.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-11T11:26:21.146Z","etag":null,"topics":["asm","assembly"],"latest_commit_sha":null,"homepage":"","language":"Assembly","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/HarshKapadia2.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}},"created_at":"2023-10-07T17:10:10.000Z","updated_at":"2023-10-07T19:28:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"198ea3bb-9089-4f45-b73c-5d4ddc316a16","html_url":"https://github.com/HarshKapadia2/assembly","commit_stats":{"total_commits":4,"total_committers":1,"mean_commits":4.0,"dds":0.0,"last_synced_commit":"c242b354828862cd50b159abe2e02765d9ac9ee4"},"previous_names":["harshkapadia2/assembly"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshKapadia2%2Fassembly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshKapadia2%2Fassembly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshKapadia2%2Fassembly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarshKapadia2%2Fassembly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HarshKapadia2","download_url":"https://codeload.github.com/HarshKapadia2/assembly/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246450422,"owners_count":20779405,"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":["asm","assembly"],"created_at":"2024-10-04T11:06:11.895Z","updated_at":"2025-03-31T09:40:36.284Z","avatar_url":"https://github.com/HarshKapadia2.png","language":"Assembly","readme":"# Assembly\n\n-   This repository is mainly about the x86 version of the Assembly language.\n-   Tutorial playlist: [Intro to x86 Assembly Language](https://www.youtube.com/watch?v=wLXIWKUWpSs\u0026list=PLmxT2pVYo5LB5EzTPZGfFN0c2GDiSXgQe\u0026index=1) (32-bit x86 Assembly)\n-   [Find Syscalls and which registers to use](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/constants/syscalls.md)\n    -   `man 2 \u003csyscall_name\u003e` can also be used to find the functions definition\n        of the Syscall.\n\n## Compilation and Execution Instructions\n\n```bash\n# Use Netwide Assembler to compile assembly code to object file\n$ nasm -f elf32 hello-world.asm -o hello-world.o\n\n# Use GNU Linker to link object file and create an ELF (executable)\n$ ld -m elf_i386 hello-world.o -o hello-world\n\n# Execute the ELF\n$ ./hello-world\n```\n\n## Register Sizes\n\n-   8-bit\n    -   `AH`, `AL`\n-   16-bit\n    -   `AX` (`AH:AL`)\n-   32-bit\n    -   `EAX`\n-   64-bit\n    -   `RAX`\n\n## Data Sizes\n\n-   `db` or `byte`\n    -   One byte\n-   `dw` or `word`\n    -   One word, i.e., two bytes\n-   `dd` or `dword`\n    -   Double word, i.e., four bytes\n-   `dq` or `qword`\n    -   Quadruple word, i.e., eight bytes\n\n## Useful Commands\n\n-   `file`\n-   `nm`\n-   `ldd`\n-   `objdump`\n-   `strace`\n-   `readelf`\n-   `gdb`\n-   `gf`\n\n## Resources\n\n-   [Assembly Language in 100 Seconds](https://www.youtube.com/watch?v=4gwYkEK0gOk)\n-   [Intro to x86 Assembly Language](https://www.youtube.com/watch?v=wLXIWKUWpSs\u0026list=PLmxT2pVYo5LB5EzTPZGfFN0c2GDiSXgQe\u0026index=1) (32-bit x86 Assembly)\n-   [The faker's guide to reading (x86) assembly language](https://www.timdbg.com/posts/fakers-guide-to-assembly)\n-   [Some Assembly Required](https://github.com/hackclub/some-assembly-required)\n-   [x86 assembly doesn’t have to be scary (interactive)](https://blog.benjojo.co.uk/post/interactive-x86-bootloader-tutorial)\n-   [Web in Native Assembly (Linux x86_64)](https://www.youtube.com/watch?v=b-q4QBy52AA)\n-   [Brennan's Guide to Inline Assembly](https://delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html) (AT\u0026T vs Intel syntax)\n-   [you can become a GALAXYBRAIN assembly programmers in 10 minutes](https://www.youtube.com/watch?v=6S5KRJv-7RU)\n-   [godbolt.org](https://godbolt.org)\n-   [Function calling in Assembly](https://flint.cs.yale.edu/cs421/papers/x86-asm/asm.html#calling) (Caller and Callee rules)\n-   [Difference between `.a`, `.s`, `.S` and `.asm`](https://stackoverflow.com/a/34098830/11958552)\n-   [Find Syscalls and which registers to use](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/constants/syscalls.md)\n-   [ASCII Table](https://www.asciitable.com)\n-   [Is it possible to use 32 bits registers/instructions in real mode?](https://stackoverflow.com/questions/6917503/is-it-possible-to-use-32-bits-registers-instructions-in-real-mode)\n-   [In x86 what's difference between \"test eax,eax\" and \"cmp eax,0\"](https://stackoverflow.com/questions/39556649/in-x86-whats-difference-between-test-eax-eax-and-cmp-eax-0)\n-   [Netwide Assembler (NASM)](https://nasm.us)\n-   [NASM vs GAS](https://stackoverflow.com/questions/13793609/nasm-vs-gas-practical-differences)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshkapadia2%2Fassembly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharshkapadia2%2Fassembly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharshkapadia2%2Fassembly/lists"}