test: nasm-t -- Add lnxhello

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
Cyrill Gorcunov 2018-11-11 15:37:54 +03:00
parent 88ef14eed8
commit fa747e71a8
3 changed files with 60 additions and 0 deletions

49
travis/test/lnxhello.asm Normal file
View file

@ -0,0 +1,49 @@
;
; Assembly "Hello, World!" for Linux
;
; Properly defined in <sys/syscall.h>
%define SYS_exit 1
%define SYS_write 4
section .text
global _start
_start:
; gdb doesn't like to stop at the entry point address, so
; we put a nop here for pure convenience
nop
write_hello:
mov edx, hello_len
mov ecx, hello
.loop:
mov eax, SYS_write
mov ebx, 1 ; stdout
int 80h
cmp eax, -4096
ja error
add ecx, eax
sub edx, eax
jnz .loop
ok:
mov eax, SYS_exit
xor ebx, ebx
int 80h
hlt
error:
mov eax, SYS_exit
mov ebx, 1 ; Error
int 80h
hlt
section .rodata
hello: db "Hello, World!", 10
hello_len equ $-hello

11
travis/test/lnxhello.json Normal file
View file

@ -0,0 +1,11 @@
[
{
"description": "Assembly 'Hello, World! for Linux",
"id": "lnxhello",
"format": "elf32",
"source": "lnxhello.asm",
"target": [
{ "output": "lnxhello.o" }
]
}
]

BIN
travis/test/lnxhello.o.t Normal file

Binary file not shown.