Hello, world!

This commit is contained in:
2025-10-07 16:17:24 -04:00
commit 22f1cae833
4 changed files with 39 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
build

18
Makefile Normal file
View File

@@ -0,0 +1,18 @@
.PHONY: all clean
SRC := $(wildcard *.asm)
OBJDIR := build
OBJS := $(SRC:%.asm=$(OBJDIR)/%.o)
BINS := $(SRC:%.asm=$(OBJDIR)/%)
all: $(BINS)
$(OBJDIR)/%: $(OBJDIR)/%.o
ld -m elf_i386 $< -o $@
$(OBJDIR)/%.o: %.asm
mkdir -p $(OBJDIR)
nasm -f elf $< -o $@
clean:
rm -rf $(OBJDIR)

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# asm
Build x86_64 assembly examples from [asmtutor.com](https://asmtutor.com)

17
helloworld.asm Normal file
View File

@@ -0,0 +1,17 @@
; Hello World Program - asmtutor.com
; Compile with: nasm -f elf helloworld.asm
; Link with (64 bit systems require elf_i386 option): ld -m elf_i386 helloworld.o -o helloworld
; Run with: ./helloworld
SECTION .data
msg db 'Hello World!', 0Ah ; assign msg variable with your message string
SECTION .text
global _start
_start:
mov edx, 13 ; number of bytes to write - one for each letter plus 0Ah (line feed character)
mov ecx, msg ; move the memory address of our message string into ecx
mov ebx, 1 ; write to the STDOUT file
mov eax, 4 ; invoke SYS_WRITE (kernel opcode 4)
int 80h