{"id":50527792,"url":"https://github.com/saqibbedar/learn-assembly-masm-nasm-dosbox-linux","last_synced_at":"2026-06-03T09:31:07.745Z","repository":{"id":340010603,"uuid":"1164180137","full_name":"saqibbedar/learn-assembly-masm-nasm-dosbox-linux","owner":"saqibbedar","description":"Learn x86 assembly with step-by-step examples and setup guides: DOS 8086 (MASM in DOSBox) and Linux x86-64 (NASM).","archived":false,"fork":false,"pushed_at":"2026-04-29T20:20:22.000Z","size":510,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-29T22:26:50.547Z","etag":null,"topics":["16-bit","8086","assembly","assembly-language","beginner","dos","dosbox","examples","int21h","intel-syntax","linux","low-level-programming","masm","nasm","systems-programming","tutorial","windows","x86","x86-64"],"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/saqibbedar.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-22T18:56:14.000Z","updated_at":"2026-04-29T20:20:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/saqibbedar/learn-assembly-masm-nasm-dosbox-linux","commit_stats":null,"previous_names":["saqibbedar/asm","saqibbedar/learn-assembly-masm-nasm-dosbox-linux"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saqibbedar/learn-assembly-masm-nasm-dosbox-linux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saqibbedar","download_url":"https://codeload.github.com/saqibbedar/learn-assembly-masm-nasm-dosbox-linux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33858569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":["16-bit","8086","assembly","assembly-language","beginner","dos","dosbox","examples","int21h","intel-syntax","linux","low-level-programming","masm","nasm","systems-programming","tutorial","windows","x86","x86-64"],"created_at":"2026-06-03T09:31:07.114Z","updated_at":"2026-06-03T09:31:07.733Z","avatar_url":"https://github.com/saqibbedar.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Assembly Language (DOS 8086 + Linux x86-64) — Programs \u0026 Setup\n\nThis repository contains **assembly language examples and learning material** for:\n\n- **Linux x86-64 assembly** using **NASM** + **ld**\n- **DOS 8086 assembly** on Windows using **DOSBox** + **MASM/LINK**\n\nIt includes:\n- beginner-friendly programs to advanced programs\n- an organized Windows/DOS learning track (basics → variables → loops → arrays → procedures → stack → macros)\n- a practical **environment setup** for running 8086 assembly using DOSBox\n\n---\n\n## Repository Structure\n\n```text\nasm/\n├── linux/\n│   ├── programs/\n│   │   └── src/\n│   │       └── hello_world/\n│   │           ├── firstProgram.asm\n│   │           └── hello_world.asm\n│   └── projects/                # placeholder for larger Linux projects\n└── windows/\n    ├── 00-setup-dosbox-win-env/  # DOSBox + MASM environment starter\n    └── src/\n        ├── assignments/\n        ├── main/\n        │   ├── basics/\n        │   ├── variables/\n        │   ├── conditionals/\n        │   ├── loops/\n        |   ├── arrays/\n        │   ├── macro/\n        │   ├── procedures/\n        │   └── stack/\n        ├── past_papers/\n        ├── practice/\n        ├── questions/\n        └── src.yml\n```\n\n---\n\n## Getting Started (Linux: NASM + ld, x86-64)\n\n### Prerequisites\n- NASM: https://www.nasm.us/\n- Linux x86-64 environment\n\nInstall on Debian/Ubuntu:\n```bash\nsudo apt-get update\nsudo apt-get install -y nasm\n```\n\nVerify:\n```bash\nnasm -v\nuname -m   # expected: x86_64\n```\n\n### Build \u0026 Run (example)\n```bash\ncd linux/programs/src/hello_world\n\n# Assemble (ELF64)\nnasm -f elf64 hello_world.asm -o hello_world.o\n\n# Link\nld hello_world.o -o hello_world\n\n# Run\n./hello_world\n```\n\n\u003e If you want, you can add a simple Makefile later to make builds one-command.\n\n---\n\n## Getting Started (Windows: DOS 8086 via DOSBox + MASM)\n\nThis repo includes a DOSBox environment starter under:\n- `windows/00-setup-dosbox-win-env/`\n\n### Prerequisites\n- DOSBox: https://sourceforge.net/projects/dosbox/\n- `MASM.EXE`\n- `LINK.EXE`\n\n### Recommended folder layout (example)\nCreate a folder on your PC:\n- `C:\\8086`\n\nPut these in `C:\\8086`:\n- `MASM.EXE`\n- `LINK.EXE`\n- the extracted setup files from [`windows/00-setup-dosbox-win-env/`](./windows/00-setup-dosbox-win-env/)\n\n### Build \u0026 Run in DOSBox\n1) Put your `.asm` file inside `C:\\8086` (for example `main.asm`)\n2) Open DOSBox and run:\n\n```text\nmount c c:\\8086\nc:\nmasm main.asm;\nlink main.obj;\nmain\n```\n\n---\n\n## Examples Included\n\n### Linux\n- `linux/programs/src/hello_world/hello_world.asm`\n- `linux/programs/src/hello_world/firstProgram.asm`\n\n### Windows / DOS 8086\n- `windows/src/` (organized topic-wise learning material)\n\n---\n\n## Optional: VS Code Workflow (Editing)\nYou can edit `.asm` files in VS Code. For MASM/TASM workflows, this extension may help:\nhttps://marketplace.visualstudio.com/items?itemName=xsro.masm-tasm\n\n---\n\n## License\nThis repository is licensed under the MIT License. See [LICENSE](LICENSE) for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaqibbedar%2Flearn-assembly-masm-nasm-dosbox-linux/lists"}