aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile8
-rw-r--r--prog2.asm32
2 files changed, 39 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 64435ba..c1a9dbb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-all: prog1
+all: prog1 prog2
prog1: prog1.o
ld -m elf_i386 -o $@ $<
@@ -6,6 +6,12 @@ prog1: prog1.o
prog1.o: prog1.asm
nasm -f elf -g -o $@ $<
+prog2: prog2.o
+ ld -m elf_i386 -o $@ $<
+
+prog2.o: prog2.asm
+ nasm -f elf -g -o $@ $<
+
.PHONY: clean
clean:
rm -rf *.o prog1
diff --git a/prog2.asm b/prog2.asm
new file mode 100644
index 0000000..364108a
--- /dev/null
+++ b/prog2.asm
@@ -0,0 +1,32 @@
+section .text
+global _start
+
+exit:
+ mov ebx, 0
+ mov eax, 1
+ int 80h
+
+addme:
+ push ebp
+ mov ebp, esp
+ push edx
+
+ mov edx, DWORD [ebp+12]
+ add edx, DWORD [ebp+8]
+ mov eax, edx
+
+ pop edx
+ pop ebp
+ ret
+
+_start:
+ mov ebp, esp
+ sub esp, 8
+
+ mov DWORD [esp+4], 5
+ mov DWORD [esp], 5
+ call addme
+
+ mov esp, ebp
+ pop ebp
+ call exit