Create learn asm repo

Repository for learning assembly language
This commit is contained in:
Lauri Koskenniemi 2025-05-24 11:05:24 +03:00
commit 9165f49e62
20 changed files with 188 additions and 0 deletions

4
info Normal file
View File

@ -0,0 +1,4 @@
https://asmtutor.com/
https://www.chromium.org/chromium-os/developer-library/reference/linux-constants/syscalls/#x86-32-bit

BIN
lesson1/l1 Executable file

Binary file not shown.

16
lesson1/l1.asm Normal file
View File

@ -0,0 +1,16 @@
; Lesson 1
; nasm -f elf l1.asm
; ld -m elf_i386 l1.o -o l1
SECTION .data
msg db 'Hello, World!', 0Ah
SECTION .text
global _start
_start:
mov edx, 13
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h

BIN
lesson1/l1.o Normal file

Binary file not shown.

BIN
lesson2/l2 Executable file

Binary file not shown.

17
lesson2/l2.asm Normal file
View File

@ -0,0 +1,17 @@
SECTION .data
msg db 'cat!', 0Ah
SECTION .text
global _start
_start:
mov edx, 5
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h

BIN
lesson2/l2.o Normal file

Binary file not shown.

BIN
lesson3/l3 Executable file

Binary file not shown.

28
lesson3/l3.asm Normal file
View File

@ -0,0 +1,28 @@
SECTION .data
msg db 'Le Chat!', 0Ah
SECTION .text
global _start
_start:
mov ebx, msg
mov eax, ebx
nextchar:
cmp byte [eax], 0
jz finished
inc eax
jmp nextchar
finished:
sub eax, ebx
mov edx, eax
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h

BIN
lesson3/l3.o Normal file

Binary file not shown.

BIN
lesson3/l3i Executable file

Binary file not shown.

26
lesson3/l3i.asm Normal file
View File

@ -0,0 +1,26 @@
SECTION .data
msg db 'Le Chat!', 0Ah
SECTION .text
global _start
_start:
mov ecx, msg
mov edx, ecx
nextchar:
cmp byte [edx], 0
jz finished
inc edx
jmp nextchar
finished:
sub edx, ecx
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h

BIN
lesson3/l3i.o Normal file

Binary file not shown.

BIN
lesson4/l4 Executable file

Binary file not shown.

34
lesson4/l4.asm Normal file
View File

@ -0,0 +1,34 @@
SECTION .data
msg db 'A cat!', 0Ah
SECTION .text
global _start
_start:
mov edx, msg
call strlen
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h
strlen:
push ebx
mov ebx, edx
nextchar:
cmp byte [edx], 0
jz finished
inc edx
jmp nextchar
finished:
sub edx, ebx
pop ebx
ret

BIN
lesson4/l4.o Normal file

Binary file not shown.

BIN
lesson5/l5 Executable file

Binary file not shown.

18
lesson5/l5.asm Normal file
View File

@ -0,0 +1,18 @@
%include '../lib/fl.asm'
SECTION .data
msg1 db 'Cats and', 0Ah
msg2 db 'Dogs', 0Ah
SECTION .text
global _start
_start:
mov eax, msg1
call sprint
mov eax, msg2
call sprint
call quit

BIN
lesson5/l5.o Normal file

Binary file not shown.

45
lib/fl.asm Normal file
View File

@ -0,0 +1,45 @@
slen:
push ebx
mov ebx, eax
nextchar:
cmp byte [eax], 0
jz finished
inc eax
jmp nextchar
finished:
sub eax, ebx
pop ebx
ret
sprint:
push edx
push ecx
push ebx
push eax
call slen
mov edx, eax
pop eax
mov ecx, eax
mov ebx, 1
mov eax, 4
int 80h
pop ebx
pop ecx
pop edx
ret
quit:
mov ebx, 0
mov eax, 1
int 80h
ret