Giovanni's Diary > Subjects > Programming > Gists >

Misc / hello_world.asm

Hello world x86-64 Linux assembly example.

;; SPDX-License-Identifier: MIT
;; Author: Giovanni Santini
;; Github: @San7o

extern printf

  SECTION .data
fmt:
  db "Hello!", 10, 0

  SECTION .text
  global main

main:
  ;; align stack: call pushes return addr (8 bytes),
  ;; so subtract 8 more to make 16-byte alignment
  sub rsp, 8

  lea rdi, [rel fmt]            ; first arg
  xor eax, eax                  ; set AL=0 for 0 varargs
  call printf

  add rsp, 8                    ; restore stack
  mov rax, 0                    ; return number
  ret

Travel: Gists, Index