[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81866":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":16,"lastSyncTime":29,"discoverSource":30},81866,"asmlings","giacomo-folli\u002Fasmlings","giacomo-folli","A lightweight educational sandbox for Intel 8086 assembly programming with a Rust-based emulator runner.","https:\u002F\u002Fgiacomo-folli.github.io\u002Fasmlings-web\u002F",null,"Rust",25,1,22,0,2,3,39.2,false,"main",true,[23,24,25],"assembly-x86","education","rust","2026-06-12 04:01:35","\u003Cdiv align=\"center\">\n\n# ⚙️ ASMLings\n\n**A lightweight, interactive educational sandbox for Intel 8086 assembly programming.**\n\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fasmlings.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fasmlings)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\n\u003C\u002Fdiv>\n\nASMLings provides a sandboxed feedback loop powered by a Rust-based 16-bit x86 emulator. You just write code, save the file and instantly check the results.\n\n> Inspired by the `rustlings` project\n\n\n## Installation\n\n### Using cargo-binstall (fast, no compilation)\n\n```bash\ncargo install cargo-binstall\ncargo binstall asmlings\n```\n\n### Using Cargo (with compilation step)\n\n```bash\ncargo install asmlings\n```\n\n### Manual Download\n\nDownload binaries from the [GitHub Releases page](https:\u002F\u002Fgithub.com\u002Fgiacomo-folli\u002Fasmlings\u002Freleases)\n\n### System Dependency\n\nYou must also have the **NASM** assembler installed, as Asmlings uses it under the hood to compile your code before emulation.\n\n* **macOS:** `brew install nasm`\n* **Ubuntu\u002FDebian:** `sudo apt install nasm`\n* **Arch Linux:** `sudo pacman -S nasm`\n* **Windows:** `winget install NASM`\n\n### Troubleshooting Installation (Linux)\n\nIf `cargo install asmlings` fails with a linker error mentioning `__atomic_compare_exchange_16` or `undefined symbol`, your system needs the `libatomic` library to compile the underlying CPU emulator.\n\nTo fix this, run the installation with the atomic linker flag:\n\n```bash\nRUSTFLAGS=\"-Clink-arg=-latomic\" cargo install asmlings\n\n```\n\n*If the compiler says `-latomic` cannot be found, install it via your package manager:*\n\n* **Ubuntu\u002FDebian:** `sudo apt install libatomic1`\n* **Arch Linux:** `sudo pacman -S gcc-libs`\n* **Fedora\u002FRHEL:** `sudo dnf install libatomic`\n\n---\n\n## Quick Start\n\nGetting started is as simple as running two commands. Navigate to a folder where you want to store your coursework, and run:\n\n### 1. Initialize the Workspace\n\nExtracts the exercise files and sets up your progress tracker.\n\n```bash\nasmlings init\n\n```\n\n### 2. Start Watch Mode\n\nThis launches a persistent watch loop. Leave this running in your terminal!\n\n```bash\nasmlings start\n\n```\n\n### 3. Solve the Exercises\n\nOpen the newly created `exercises\u002F` folder in your favorite text editor. Asmlings will tell you which file to look at. Follow the instructions in the comments, fix the assembly code, and hit save.\n\nEvery time you save, Asmlings will automatically re-assemble and verify your code, providing instant terminal feedback.\n\n*(Note: If you just want to run the current exercise once without watching for file changes, you can use `asmlings run`).*\n\n## How to use\nEach exercise in the `exercises\u002F` directory is a self-contained `.asm` file demonstrating standard 8086 instructions (e.g., `mov`, `add`, `push`, `pop`, `lodsb`).\n\nTo complete an exercise, you must do two things:\n\n1. **Satisfy the Assertions:** The exercise contains commented directives like `; ASSERT_REG: AX == 0x1337` or `; ASSERT_MEM: [0x0200] == 0x42`. Your code must result in the exact register, flag, and memory state requested.\n2. **Remove the Sentinel:** Every file contains an `; I AM NOT DONE` comment. Even if your code compiles and passes the assertions, Asmlings will not advance to the next exercise until you manually delete this line. This ensures you deliberately complete the exercise and understand the solution.\n\n## Contributing\n\nContributions are welcome! If you'd like to help build or improve Asmlings, check out our [Contributing Guide](CONTRIBUTING.md) for details on setting up your local development environment and troubleshooting common compilation issues.\n","ASMLings 是一个轻量级的教育沙箱，专为 Intel 8086 汇编语言编程设计，基于 Rust 的仿真器运行。其核心功能包括提供即时反馈循环，用户只需编写代码、保存文件即可立即查看结果，非常适合汇编语言初学者和教育场景使用。项目通过 NASM 编译器在后台编译代码，并利用 Rust 开发的 16 位 x86 仿真器进行模拟执行，支持多种操作系统安装。无论是希望通过互动方式学习 8086 汇编指令的学生还是希望快速验证代码效果的开发者都能从中受益。","2026-06-11 04:07:01","CREATED_QUERY"]