https://github.com/cloudwego/iasm
Interactive Assembler for Go.
https://github.com/cloudwego/iasm
Last synced: 4 months ago
JSON representation
Interactive Assembler for Go.
- Host: GitHub
- URL: https://github.com/cloudwego/iasm
- Owner: cloudwego
- License: apache-2.0
- Created: 2024-03-19T11:30:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-19T03:18:24.000Z (4 months ago)
- Last Synced: 2025-02-19T03:29:19.112Z (4 months ago)
- Language: HTML
- Size: 13.5 MB
- Stars: 9
- Watchers: 10
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# `IASM` -- Interactive Assembler for Go.
Dual-purpose assembly engine written in pure Golang.
The `x86_64` package was ported from a Python module [`PeachPy`](https://github.com/Maratyszcza/PeachPy), with some adaption to the Go language features.
**Currently, IASM only supports x86_64, because it's the only architecture I am very familiar with.**
### It can be used as a dynamic assembler
This can be used to implement:
* JIT engine
* Compiler backend
* And more !See `x86_64/program_test.go` for more info.
### It can also be used as a static assembler
For `macOS`:
```bash
git clone https://github.com/chenzhuoyu/iasm
cd iasm
go build ./cmd/iasm
./iasm -h
./iasm -f macho -D __Darwin__ -o helloworld example/helloworld.s
./helloworld
```### It also contains an interactive REPL shell
Just run IASM without any arguments.
```bash
./iasm
```