Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/v420v/vas

x86-64 Assembler written in V
https://github.com/v420v/vas

amd64 asm assembler compiler elf elf64 gnu-assembler language self-hosted v vlang x64 x64-assembly x86-64

Last synced: 5 days ago
JSON representation

x86-64 Assembler written in V

Awesome Lists containing this project

README

        

# vas: Assembler written in V

[![CI](https://github.com/v420v/vas/actions/workflows/ci.yml/badge.svg)](https://github.com/v420v/vas/actions/workflows/ci.yml)

開発過程を載せたツイート 1


開発過程を載せたツイート 2

Supports Linux x86-64 AT&T syntax only.

## Hello world!
```asm
# Hello world!

.global _start

.section .data, "aw"
msg:
.string "Hello, world!\n"

.section .text, "ax"
_start:
pushq %rbp
movq %rsp, %rbp
subq $16, %rsp

movq $1, %rax
movq $1, %rdi
movq $msg, %rsi
movq $14, %rdx
syscall

movq $60, %rax
movq $0, %rdi
syscall

```

```sh
$ docker build ./ -t vas

# Linux or MacOS:
$ docker run --rm -it -v "$(pwd)":/root/env vas

# Windows (CMD):
$ docker run --rm -it -v "%cd%":/root/env vas

# Windows (PowerShell):
$ docker run --rm -it -v "${pwd}:/root/env" vas

# To leave the environment, enter `exit`.
```

## Build

```sh
$ v . -prod
```

## Run
```
$ vas .s
$ ld .o
$ ./a.out

> Hello world!!

```

## License
MIT