diff --git a/lesson11/l11 b/lesson11/l11 new file mode 100755 index 0000000..92f24d4 Binary files /dev/null and b/lesson11/l11 differ diff --git a/lesson11/l11.asm b/lesson11/l11.asm new file mode 100644 index 0000000..77ddf89 --- /dev/null +++ b/lesson11/l11.asm @@ -0,0 +1,18 @@ + +; %include '../lib/fl.asm' ; local +%include 'lib/fl.asm' ; build.sh + +SECTION .text +global _start + +_start: +mov ecx, 0 + +nextNumber: +inc ecx +mov eax, ecx +call iprintLF +cmp ecx, 10 +jne nextNumber + +call quit diff --git a/lesson11/l11.o b/lesson11/l11.o new file mode 100644 index 0000000..e4f12c6 Binary files /dev/null and b/lesson11/l11.o differ diff --git a/lesson12/l12 b/lesson12/l12 new file mode 100755 index 0000000..32567ba Binary files /dev/null and b/lesson12/l12 differ diff --git a/lesson12/l12.asm b/lesson12/l12.asm new file mode 100644 index 0000000..793136e --- /dev/null +++ b/lesson12/l12.asm @@ -0,0 +1,15 @@ + +; %include '../lib/fl.asm' ; local +%include 'lib/fl.asm' ; build.sh + +SECTION .text +global _start + +_start: +mov eax, 90 +mov ebx, 9 +add eax, ebx +call iprintLF + +call quit + diff --git a/lesson12/l12.o b/lesson12/l12.o new file mode 100644 index 0000000..08b8c65 Binary files /dev/null and b/lesson12/l12.o differ diff --git a/lesson13/l13 b/lesson13/l13 new file mode 100755 index 0000000..58f5673 Binary files /dev/null and b/lesson13/l13 differ diff --git a/lesson13/l13.asm b/lesson13/l13.asm new file mode 100644 index 0000000..6bf74a7 --- /dev/null +++ b/lesson13/l13.asm @@ -0,0 +1,15 @@ + +; %include '../lib/fl.asm' ; local +%include 'lib/fl.asm' ; build.sh + +SECTION .text +global _start + +_start: +mov eax, 90 +mov ebx, 9 +sub eax, ebx +call iprintLF + +call quit + diff --git a/lesson13/l13.o b/lesson13/l13.o new file mode 100644 index 0000000..1220bff Binary files /dev/null and b/lesson13/l13.o differ diff --git a/lesson14/l14 b/lesson14/l14 new file mode 100755 index 0000000..a081149 Binary files /dev/null and b/lesson14/l14 differ diff --git a/lesson14/l14.asm b/lesson14/l14.asm new file mode 100644 index 0000000..4dd305e --- /dev/null +++ b/lesson14/l14.asm @@ -0,0 +1,15 @@ + +; %include '../lib/fl.asm' ; local +%include 'lib/fl.asm' ; build.sh + +SECTION .text +global _start + +_start: +mov eax, 90 +mov ebx, 9 +mul ebx +call iprintLF + +call quit + diff --git a/lesson14/l14.o b/lesson14/l14.o new file mode 100644 index 0000000..9030154 Binary files /dev/null and b/lesson14/l14.o differ diff --git a/lesson15/l15 b/lesson15/l15 new file mode 100755 index 0000000..437902f Binary files /dev/null and b/lesson15/l15 differ diff --git a/lesson15/l15.asm b/lesson15/l15.asm new file mode 100644 index 0000000..e4c3d09 --- /dev/null +++ b/lesson15/l15.asm @@ -0,0 +1,21 @@ + +; %include '../lib/fl.asm' ; local +%include 'lib/fl.asm' ; build.sh + +SECTION .data +msg1 db ' remainder ' + +SECTION .text +global _start + +_start: +mov eax, 90 +mov ebx, 9 +div ebx +call iprint +mov eax, msg1 +call sprint +mov eax, edx +call iprintLF + +call quit diff --git a/lesson15/l15.o b/lesson15/l15.o new file mode 100644 index 0000000..31986df Binary files /dev/null and b/lesson15/l15.o differ diff --git a/lib/fl.asm b/lib/fl.asm index cd1af23..a25a640 100644 --- a/lib/fl.asm +++ b/lib/fl.asm @@ -1,3 +1,56 @@ +;------------------------------------------ +; void iprint(Integer number) +; Integer printing function (itoa) +iprint: +push eax +push ecx +push edx +push esi +mov ecx, 0 + +divideLoop: +inc ecx +mov edx, 0 +mov esi, 10 +idiv esi +add edx, 48 +push edx +cmp eax, 0 +jnz divideLoop + +printLoop: +dec ecx +mov eax, esp +call sprint +pop eax +cmp ecx, 0 +jnz printLoop + +pop esi +pop edx +pop ecx +pop eax +ret + + + +;------------------------------------------ +; void iprintLF(Integer number) +; Integer printing function with linefeed (itoa) +iprintLF: +call iprint + +push eax +mov eax, 0Ah +push eax +mov eax, esp +call sprint +pop eax +pop eax +ret + + + ;------------------------------------------ ; int slen(String message) ; String length calculation function