nasm: Use an hello world test that works on 32bits too

Fixes: #10956
pull/10851/head
Xavier Claessens 2 years ago committed by Jussi Pakkanen
parent 32bc64e632
commit d67c4c6ab0
  1. 40
      test cases/nasm/2 asm language/hello.asm
  2. 4
      test cases/nasm/2 asm language/meson.build

@ -1,21 +1,31 @@
%include "config.asm"
global main
extern puts
; hello.asm a first program for nasm for Linux, Intel, gcc
;
; assemble: nasm -f elf -l hello.lst hello.asm
; link: gcc -o hello hello.o
; run: hello
; output is: Hello World
section .data
hi db 'Hello, World', 0
%include "config.asm"
%ifdef FOO
%define RETVAL HELLO
%endif
section .text
main:
push rbp
lea rdi, [rel hi]
call puts wrt ..plt
pop rbp
mov ebx,RETVAL
mov eax,1
int 0x80
SECTION .data ; data section
msg: db "Hello World",10 ; the string to print, 10=cr
len: equ $-msg ; "$" means "here"
; len is a value, not an address
SECTION .text ; code section
global main ; make label available to linker
main: ; standard gcc entry point
mov edx,len ; arg3, length of string to print
mov ecx,msg ; arg2, pointer to string
mov ebx,1 ; arg1, where to write, screen
mov eax,4 ; write sysout command to int 80 hex
int 0x80 ; interrupt 80 hex, call kernel
mov ebx,RETVAL ; exit code, 0=normal
mov eax,1 ; exit command to kernel
int 0x80 ; interrupt 80 hex, call kernel

@ -17,7 +17,11 @@ config_file = configure_file(
output_format: 'nasm',
)
cc = meson.get_compiler('c')
link_args = cc.get_supported_link_arguments(['-no-pie'])
exe = executable('hello', 'hello.asm',
nasm_args: '-DFOO',
link_args: link_args,
)
test('hello', exe)

Loading…
Cancel
Save