NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Assembly example (nasm) for amd64 in NetBSD
Hello!
I was looking for a simple assembly code, a `Hello world' for example,
which runs on NetBSD, written and compiled with nasm.
I tried a code to print the CPU vendor string through cpuid: the entire
code is copied after the text of this e-mail. It works on FreeBSD. On
NetBSD 9.0 I built it with
nasm -f elf64 -o testcpu.o testcpu.s
ld -s -o testcpu testcpu.o
This gives no error, however the file can not execute. If I try to run
the file, I obtain:
/bin/sh: Cannot execute ELF binary ./testcpu
The only example I found is
https://wiki.netbsd.org/examples/netbsd_assembly/
However, it is quite confusing and it is for i386, while I would like to
use amd64.
I can't understand if the error is due to a bad linking or building, or
if the code itself has some wrong instruction.
Is there a NetBSD nasm amd64 example? Or some hints that I should follow?
Bye!
Rocky
Here is my code, that is the contents of file testcpu.s:
section .bss
buff resb 12
section .text
global _start
_start:
mov eax, 0
cpuid
mov dword [buff+0], ebx
mov dword [buff+4], edx
mov dword [buff+8], ecx
mov rax, 4
mov rdi, 1
mov rsi, buff
mov rdx, 12
syscall
mov rax, 1
mov rbx, 0
syscall
Home |
Main Index |
Thread Index |
Old Index