github.com/chenzhuoyu/iasm@v0.9.1/example/helloworld.s (about)

     1  #define STDOUT      $1
     2  #define IMAGE_BASE  0x04000000
     3  
     4  #ifdef __Linux__
     5  #define SYS_exit    $1
     6  #define SYS_write   $4
     7  #elif defined(__Darwin__)
     8  #define SYS_exit    $0x02000001
     9  #define SYS_write   $0x02000004
    10  #else
    11  #error Unsupported operating system.
    12  #endif
    13  
    14  .org   IMAGE_BASE
    15  .entry start
    16  
    17  start:
    18      movq    STDOUT, %rdi
    19      leaq    msg(%rip), %rsi
    20      movq    $13, %rdx
    21      movq    SYS_write, %rax
    22      syscall
    23      xorl    %edi, %edi
    24      movq    SYS_exit, %rax
    25      syscall
    26  
    27  msg:
    28      .ascii "hello, world\n"