add nasm and nasm64

This commit is contained in:
Dan Vargas 2022-02-07 10:56:17 -07:00
parent bc80269ce2
commit d258bed574
10 changed files with 108 additions and 99 deletions

View file

@ -1,21 +0,0 @@
#!/usr/bin/env bash
# Put instructions to build your package in here
PREFIX=$(realpath $(dirname $0))
mkdir -p build
cd build
curl -L "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.gz" -o nasm.tar.gz
tar xzf nasm.tar.gz --strip-components=1
# === autoconf based ===
./configure --prefix "$PREFIX"
make -j$(nproc)
make install -j$(nproc)
cd ../
rm -rf build

View file

@ -1,21 +0,0 @@
#!/usr/bin/env bash
# Put instructions to compile source code, remove this file if the language does not require this stage
case "${PISTON_LANGUAGE}" in
nasm)
nasm -f elf32 -o binary.o "$@"
ld -m elf_i386 binary.o -o binary
;;
nasm64)
nasm -f elf64 -o binary.o "$@"
ld -m elf_x86_64 binary.o -o binary
;;
*)
echo "How did you get here? (${PISTON_LANGUAGE})"
exit 1
;;
esac
chmod +x ./binary

View file

@ -1,4 +0,0 @@
#!/usr/bin/env bash
# Put 'export' statements here for environment variables
export PATH=$PWD/bin:$PATH

View file

@ -1,14 +0,0 @@
{
"language": "nasm",
"version": "2.15.5",
"provides": [
{
"language": "nasm",
"aliases": ["asm", "nasm32"]
},
{
"language": "nasm64",
"aliases": ["asm64"]
}
]
}

View file

@ -1,5 +0,0 @@
#!/usr/bin/env bash
# Put instructions to run the runtime
shift
./binary "$@"

View file

@ -1,16 +0,0 @@
SECTION .DATA
good: db 'OK',10
txtlen: equ $-good
SECTION .TEXT
GLOBAL _start
_start:
mov eax,4
mov ebx,1
mov ecx,good
mov edx,txtlen
int 80h
mov eax,1
mov ebx,0
int 80h

View file

@ -1,18 +0,0 @@
SECTION .data
good: db "OK", 0x0
txtlen: equ $ - good
SECTION .text
GLOBAL _start
_start:
;sys_write
mov rax, 1
mov rdi, 1
mov rsi, good
mov rdx, txtlen
syscall
;sys_exit
mov rax, 60
mov rdi, 0
syscall