{"id":31074122,"url":"https://github.com/uzairdeveloper223/asm-builder","last_synced_at":"2026-04-15T10:34:39.234Z","repository":{"id":312808890,"uuid":"1048822078","full_name":"uzairdeveloper223/ASM-Builder","owner":"uzairdeveloper223","description":"Run any assembly code in GNU/linux","archived":false,"fork":false,"pushed_at":"2025-09-02T13:45:07.000Z","size":96,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-02T14:21:32.094Z","etag":null,"topics":["assembly","bash","builder","devops","linux","macos","program","runner","windows"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/uzairdeveloper223.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,"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":"2025-09-02T04:44:30.000Z","updated_at":"2025-09-02T13:45:10.000Z","dependencies_parsed_at":"2025-09-02T14:22:14.393Z","dependency_job_id":null,"html_url":"https://github.com/uzairdeveloper223/ASM-Builder","commit_stats":null,"previous_names":["uzairdeveloper223/asm-runner-for-linux","uzairdeveloper223/asm-builder"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/uzairdeveloper223/ASM-Builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uzairdeveloper223%2FASM-Builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uzairdeveloper223%2FASM-Builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uzairdeveloper223%2FASM-Builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uzairdeveloper223%2FASM-Builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uzairdeveloper223","download_url":"https://codeload.github.com/uzairdeveloper223/ASM-Builder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uzairdeveloper223%2FASM-Builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275348511,"owners_count":25448626,"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-09-16T02:00:10.229Z","response_time":65,"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":["assembly","bash","builder","devops","linux","macos","program","runner","windows"],"created_at":"2025-09-16T02:03:11.564Z","updated_at":"2026-04-15T10:34:39.222Z","avatar_url":"https://github.com/uzairdeveloper223.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ASM Builder for Linux, MacOS (Because This Program is written in Shell).\n\nA powerful, cross-platform assembly language build and run tool that simplifies the process of compiling and executing assembly programs. Supports multiple architectures, syntaxes, and provides advanced features like auto-dependency installation, watch mode, benchmarking, and more.\n\n## Features\n\n- 🚀 **Easy Assembly Building**: Compile and run assembly programs with a single command\n- 🔧 **Multi-Platform Support**: Works on Linux, macOS, and Windows (via WSL/Cygwin)\n- 🏗️ **Multiple Architectures**: Support for 32-bit, 64-bit, and ARM64 architectures\n- 📝 **Syntax Flexibility**: Intel and AT\u0026T assembly syntax support\n- ⚡ **Optimization Levels**: Configurable optimization levels (O0-O3)\n- 🔄 **Watch Mode**: Automatically rebuild when source files change\n- 📊 **Benchmarking**: Measure execution performance of compiled programs\n- 🐛 **Debug Support**: Built-in debugging with GDB-compatible output\n- 📦 **Auto-Dependency Installation**: Automatically install required tools (NASM, GCC, LD, etc.)\n- 🔄 **Self-Updating**: Check for and install updates automatically\n- 🛠️ **Self-Repairing**: Repair installation and reinstall dependencies\n- 🗑️ **Easy Uninstallation**: Remove ASM Builder and all associated files\n- 🧹 **Clean Builds**: Remove build artifacts with ease\n- 📋 **Comprehensive Logging**: Detailed logs for troubleshooting\n- 🎨 **Colorful Output**: Enhanced terminal output with colors and progress indicators\n- 🔍 **Automatic Linker Detection**: Automatically detects GCC-compatible or LD-compatible assembly files\n- 💾 **Smart Backup**: Automatic backup creation during updates and repairs\n\n## Installation\n\n### Quick Install (Recommended)\n\n```bash\n# Download and run the installer\ncurl -sL https://raw.githubusercontent.com/uzairdeveloper223/ASM-Builder/main/installer.sh -o installer.sh \u0026\u0026 chmod +x installer.sh \u0026\u0026 ./installer.sh\n```\n\n### Manual Installation\n\n1. Download the `asmbuilder` script:\n```bash\nwget https://raw.githubusercontent.com/uzairdeveloper223/ASM-Builder/main/asmbuilder\n```\n\n2. Make it executable:\n```bash\nchmod +x asmbuilder\n```\n\n3. Move to a directory in your PATH:\n```bash\nsudo mv asmbuilder /usr/local/bin/\n```\n\n### Dependencies\n\nThe installer will automatically install required dependencies. Manual installation requires:\n\n- **NASM**: Netwide Assembler\n- **GCC**: GNU Compiler Collection\n- **LD**: GNU Linker\n- **make**: Build automation tool\n- **curl**: For updates and downloads\n\n### Automatic Linker Detection\n\nASM Builder automatically detects the type of assembly file and chooses the appropriate linker:\n\n- **GCC-compatible files**: Files containing `global main` (uses GCC linker)\n  - Supports C library functions and external linking\n  - Automatically adds `.note.GNU-stack` section to prevent linker warnings\n  - Example: Files that use `printf`, `scanf`, etc.\n\n- **LD-compatible files**: Files containing `global _start` (uses LD linker)\n  - Direct system calls without C library dependencies\n  - Smaller binaries, faster execution\n  - Example: Files that use `syscall` instructions\n\nThe tool automatically analyzes your assembly file and selects the optimal linker for your code structure, ensuring clean builds without warnings.\n\n## Uninstallation\n\nASM Builder provides multiple ways to uninstall:\n\n### Using the Built-in Uninstaller\n\n```bash\n# From anywhere (downloads and runs uninstaller automatically)\nasmbuilder --uninstall\n\n# Or run the uninstaller directly\n./uninstaller.sh\n```\n\n### Manual Uninstallation\n\n1. Remove the main script:\n```bash\nsudo rm /usr/local/bin/asmbuilder\n```\n\n2. Remove configuration files:\n```bash\nrm -rf ~/.config/asmbuilder/\n```\n\n3. Remove cache files:\n```bash\nrm -rf ~/.cache/asmbuilder/\n```\n\n4. Clean PATH (if modified):\n```bash\n# Edit ~/.bashrc or ~/.zshrc and remove the ASM Builder PATH line\n```\n\n### What Gets Removed\n\nThe uninstaller automatically removes:\n- ✅ Main ASM Builder script from `/usr/local/bin/`\n- ✅ Man page from system man directories\n- ✅ Configuration directory (`~/.config/asmbuilder/`)\n- ✅ Cache directory (`~/.cache/asmbuilder/`)\n- ✅ Desktop entry (Linux only)\n- ✅ PATH modifications\n- ✅ Temporary files\n- ✅ Backup creation for safety\n\n**Note**: The uninstaller creates backups of important files in `~/.asmbuilder-backups/` before removal, so you can restore if needed.\n\n## Updates and Repairs\n\nASM Builder includes built-in update and repair functionality:\n\n### Checking for Updates\n\n```bash\n# Check for available updates\nasmbuilder --update\n```\n\n### Repairing Installation\n\n```bash\n# Repair installation and reinstall dependencies\nasmbuilder --repair\n```\n\n### What Updates and Repairs Do\n\n**Update Process:**\n- ✅ Checks for newer versions on GitHub\n- ✅ Downloads latest version automatically\n- ✅ Creates backup of current installation\n- ✅ Replaces installed script with new version\n- ✅ Handles permission requirements automatically\n- ✅ Provides restart instructions\n\n**Repair Process:**\n- ✅ Backs up current configuration\n- ✅ Clears cache directory\n- ✅ Re-checks all dependencies\n- ✅ Auto-installs missing dependencies\n- ✅ Downloads fresh copy of ASM Builder\n- ✅ Replaces installed version\n- ✅ Restores configuration if needed\n\n**Smart Features:**\n- 🔍 **Automatic Detection**: Finds installed script location automatically\n- 💾 **Backup Creation**: Always creates backups before making changes\n- 🔐 **Permission Handling**: Automatically requests sudo when needed\n- 🌐 **Online Updates**: Downloads latest version directly from GitHub\n- 🔄 **Fallback Support**: Works even when script isn't in PATH\n\n## Usage\n\n### Basic Usage\n\n```bash\n# Build and run an assembly program\nasmbuilder hello.asm\n\n# Specify output filename\nasmbuilder -o myprogram hello.asm\n\n# Build with optimization\nasmbuilder -O2 -o optimized hello.asm\n```\n\n### Advanced Options\n\n| Option | Description |\n|--------|-------------|\n| `-h, --help` | Show help message |\n| `-v, --version` | Show version information |\n| `-u, --update` | Check for updates |\n| `-r, --repair` | Repair installation |\n| `--uninstall` | Uninstall ASM Builder |\n| `-c, --clean` | Clean build artifacts |\n| `-d, --debug` | Enable debug mode |\n| `-o, --output \u003cname\u003e` | Specify output filename |\n| `-O, --optimize \u003clevel\u003e` | Set optimization level (0-3) |\n| `-A, --arch \u003carch\u003e` | Target architecture (32/64/arm64) |\n| `-S, --syntax \u003csyntax\u003e` | Assembly syntax (intel/att) |\n| `-l, --link \u003clibs\u003e` | Link with libraries |\n| `-w, --watch` | Watch file for changes |\n| `-b, --benchmark` | Benchmark the program |\n| `-p, --profile` | Generate profiling data |\n| `--install-deps` | Auto-install dependencies |\n| `--show-log` | Display log file |\n| `--clear-cache` | Clear cache directory |\n| `--config` | Open configuration file |\n| `--static` | Build static binary |\n| `--strip` | Strip symbols |\n| `--pie` | Build position-independent executable |\n\n## Examples\n\n### Basic Hello World\n\nCreate a file `hello.asm`:\n\n```nasm\nsection .data\n    hello db 'Hello, World!', 0xA\n    hello_len equ $ - hello\n\nsection .text\n    global _start\n\n_start:\n    ; Write hello to stdout\n    mov rax, 1          ; syscall: write\n    mov rdi, 1          ; file descriptor: stdout\n    mov rsi, hello      ; message\n    mov rdx, hello_len  ; length\n    syscall\n\n    ; Exit\n    mov rax, 60         ; syscall: exit\n    mov rdi, 0          ; exit code\n    syscall\n```\n\nBuild and run:\n```bash\nasmbuilder hello.asm\n```\n\n### 64-bit Program with Libraries\n\n```bash\n# Build with math library\nasmbuilder -l m -o calculator calc.asm\n\n# Build static binary\nasmbuilder --static -o static_calc calc.asm\n```\n\n### Watch Mode for Development\n\n```bash\n# Automatically rebuild when file changes\nasmbuilder -w program.asm\n```\n\n### Benchmarking Performance\n\n```bash\n# Benchmark your program\nasmbuilder -b program.asm\n```\n\n### Cross-Architecture Building\n\n```bash\n# Build for 32-bit\nasmbuilder -A 32 -o program32 program.asm\n\n# Build for ARM64 (if supported)\nasmbuilder -A arm64 -o program_arm program.asm\n```\n\n## Configuration\n\nConfiguration files are stored in `~/.config/asmbuilder/`:\n\n- `config.conf`: Main configuration\n- `asmbuilder.log`: Operation logs\n\n## Troubleshooting\n\n### Common Issues\n\n1. **Permission Denied**: Make sure the script is executable\n   ```bash\n   chmod +x asmbuilder\n   ```\n\n2. **Dependencies Missing**: Run auto-install\n   ```bash\n   asmbuilder --install-deps\n   ```\n\n3. **PATH Issues**: Ensure installation directory is in PATH\n   ```bash\n   export PATH=\"$PATH:/usr/local/bin\"\n   ```\n\n4. **Architecture Mismatch**: Specify correct architecture\n   ```bash\n   asmbuilder -A 64 program.asm\n   ```\n\n### Getting Help\n\n```bash\nasmbuilder --help\n\nasmbuilder --version\n\nasmbuilder --show-log\n```\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n## License\n\nThis project is licensed under the GNU GENERAL PUBLIC LICENSE - see the LICENSE file for details.\n\n## Author\n\n**UzairDeveloper223**\n- Email: contact@uzair.is-a.dev\n- Website: https://uzair.is-a.dev\n- GitHub: [@uzairdeveloper223](https://github.com/uzairdeveloper223)\n\n## Version\n\nCurrent Version: 1.0.0\n\n---\n\n**Happy Assembling! 🏗️**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuzairdeveloper223%2Fasm-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuzairdeveloper223%2Fasm-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuzairdeveloper223%2Fasm-builder/lists"}