From 8d471b77f7e894ce29a643f1bd819a1b3f127c07 Mon Sep 17 00:00:00 2001 From: Lauri Koskenniemi Date: Sun, 22 Jun 2025 23:14:35 +0300 Subject: [PATCH] Continued to lesson 15 --- lesson11/l11 | Bin 0 -> 4912 bytes lesson11/l11.asm | 18 ++++++++++++++++ lesson11/l11.o | Bin 0 -> 864 bytes lesson12/l12 | Bin 0 -> 4884 bytes lesson12/l12.asm | 15 ++++++++++++++ lesson12/l12.o | Bin 0 -> 832 bytes lesson13/l13 | Bin 0 -> 4884 bytes lesson13/l13.asm | 15 ++++++++++++++ lesson13/l13.o | Bin 0 -> 832 bytes lesson14/l14 | Bin 0 -> 4884 bytes lesson14/l14.asm | 15 ++++++++++++++ lesson14/l14.o | Bin 0 -> 832 bytes lesson15/l15 | Bin 0 -> 8884 bytes lesson15/l15.asm | 21 +++++++++++++++++++ lesson15/l15.o | Bin 0 -> 1008 bytes lib/fl.asm | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 16 files changed, 137 insertions(+) create mode 100755 lesson11/l11 create mode 100644 lesson11/l11.asm create mode 100644 lesson11/l11.o create mode 100755 lesson12/l12 create mode 100644 lesson12/l12.asm create mode 100644 lesson12/l12.o create mode 100755 lesson13/l13 create mode 100644 lesson13/l13.asm create mode 100644 lesson13/l13.o create mode 100755 lesson14/l14 create mode 100644 lesson14/l14.asm create mode 100644 lesson14/l14.o create mode 100755 lesson15/l15 create mode 100644 lesson15/l15.asm create mode 100644 lesson15/l15.o diff --git a/lesson11/l11 b/lesson11/l11 new file mode 100755 index 0000000000000000000000000000000000000000..92f24d4bb1ddab9e9e4f66f31d1cada164234ad2 GIT binary patch literal 4912 zcmeI0v1=1?6vy8sS7{4EbrS~_9CV3|6m)RVp+PZ}G(o+#&~WLUQn+(1 z+D>LsvIct;{#;#Nvf|{^Xf&z~d9a2q?*}X^ZbWhaBFW$fH~RID4n)WAYTu!QOQEEBT6yN5+iDb2I73 zC|y_Z-XS%Ejv-Ddd>VX0;S%_~!WY0-6}|+%uJAm#q3{Cumclo{p~9=+Ckn5DUnnfV zylX+gYQ!L)lb8Sa!9ISpkE!Dd(eumYbDeUzWQ#6&>w)J>a=g2q<5qjUbxI3qmi4L? z5*^nk-@PZ-+IB#L^;*CCPpHVYWL6M8ZoTL`-?H=t&-B}7w5JCM|L9b4K6zC%Q~Ve|m_=Sr_b!cz2XrzCPlaLS96Cjm8X$MdXL!{IT)u e6r5|hy+1ym{aE-kWdV%+6jSl~fdk0#hhN9Y!?i z7rwZ0ls-^b(E6?@G==y0yCNXpC54EOdl5rY{s;PoB`!3C^~2>!Zc(^Jt{eW*k3w@0 zF6-T3lZjklfnLDV^O?nCL8eZ`dK$*^_^)vm%QT+I{4-KK)*?GxOQBP3BJId41HuOu$P zAkjjdnxgfhZhJFXznlXU8_!|$!MOq=igI;_QxbwdhS_R*i>YKnv z65jwm^m#Lw0V=%5s08wxsf(4j>!NSe@kO`+l1JIO(Msd+D@;$R@t z;o|7nzd$;s1_XOkhvM2ra6EL<#kv^3zdIhj1_vjn_k(xe_xb&P_bz<%rr*oO(voFa zq#{RoVtVu19-oJnu4I*Yx=uN|Nn>QE^)%bH#|cXUc-fr1L|Gk5ID^+)Y5G?`XEtJEP8* zhtcO`7AdFqlRDowYHLoM91n-Xa-SQ^sPcTkapGzeckhzS-}`!Y>vTP?ELY1(g2w2` zi9QT?qR{8@z)5#~trjPr&K>a)gd+y1Q=eN;x^ce-9ZcY1ohA_)(szI(!R;z+`Zi3* z6+CxH!=kIu35}=0QyLe*MUC%(A85P)ex>xT^7E@Dq(!z#WY@z^^oJfO)n8!6?L{ zE#B<^;noQ6jxaTSAzI;F@pf~rSa8KQ1v~8^l;j1wf#;W6tsP1e=`O34mPj=HkV1b? zZZ+ICJq^M@G<=Ul_HHI25-0JJW{RNgU0; z^q=Ayy7+&)z}@TxW=vD=m8gy%tJ0>@rB|P-xAKLIJivoLIG6W5v0%c L&ET@!_)Fh!-SVSf literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..08b8c6538f0fb767c911f7a677190b1b49388389 GIT binary patch literal 832 zcmb7?J4*vW6ou~^A1DaX&PoIeZK4K23kxk06oce}8WV^_vyzp#i8~X~%0Q~cKj5#h zjs`^C%0jfX5iA#N)JAQLXZC?(BY0uvp6}i>cW0M9jKrdfqL3d71?Y!}X1&IwlSin7 z+I;K3vY07Wr*|p{IFTj7*Ikm?uk4M{9!i0H$TZ}Ni1BWmqfyFdyx4l+yK2s=nniYiY~AZnawRhA_s_ z?HAp&l`^f`H1WXf^T+6Y)=DN)aodK`yh@vwP4U!*xav(UyOy!+hhHOZK^W0QpBln? zQ?nWw2MB`?u3;OZJLCLA=gSD9-m3 zw{SzDVTeH=;SWKFC7yzwmv{zxQQ`=6O5!ExRf(6Os}kp+k0joNKK3{${;-nDSXrM4 zkCi6Ep*-6mtzu|8r-HVp71UU{Tp_36D7P1j5-X`X>G+bH#k@gVny#^;S|H}0brWp6 ORgKd+<9UO7&-@1boQLwkk(4nOeTU)S02RpPV21ygD*AyDAy^|cImzwud6bA#D z4wsIO{sq!88W8MF4#l;L;CSeyi*+%6e|J254GvCD?+5R`@ALcp?p^riO~2=>#Wl;a zNJWnF#Psse9$kbMuVj@)x<)ygrV+B!dYbLnql6^^ylhThqO1-joWbigw!B8LxNgEY zU>q9M{r5-nyQ04i6(>78Y74ia}z68Y4tvvXYf#qnU|lWgyk!AMjUL zM+2hS$|7iKBUmolsEx5Pp4kT(8^H@R_k8!BxjVb;=|X5xQ55n*As@AfXwGd+*?ELI zsLiwfD~p+8b-JhgfD37Y-_>2nKB;~K-;l&&hKN2a`6h2@Jfqf*)$3+4a{x=8_kctD zsCnVd^EkW~*|-!ie~XBCpjlO49j03zkfTuH)XH*6U6JZLb1Q6 zxP=o64MPli2!8;2QsQaoC5dODS0rA5j!L`=y(#fJbW!32^qIsd=yR9-;t$KJjOF!- z;8=Dd7)Y`lX$J*O=akltw6q$^=MTs(*vjdJ7Kvq5opgN3R3=%VJx$kGMoklQ&N>OU P!=lD%hw)^AyU+XqJEx7< literal 0 HcmV?d00001 diff --git a/lesson14/l14 b/lesson14/l14 new file mode 100755 index 0000000000000000000000000000000000000000..a08114925fe3feb343de7e6df630939c2ea27323 GIT binary patch literal 4884 zcmeI0v1=1i9LIl`T&0x`>Lw0VaIh3&D*+uk=+L4VBu!|&rqFQho#Y_B)V!BcaWIhS zaB+0>FOZJWfY9F5p>%Z-1eZf6U0N68_jkv`*Wlpf^nUQ}`#!(l@7{%P-t>F1P+GJs zi&W$&PfV|0+2ciM=~7lH(pAdQ4H_dmt*6z{}?31qDG~Ecdywj4ICu94D?uarX|%{M~P-(;wI3%2KtQBxsBd zoM?Z*6NNsH2adXHtF<`!bmoX-5RMq2PJM1Y>c;&VbTEO($(JNTL;4PIB)DCLP2Y#< zxPs>nX;^d_I-&7(@RY^{@GXsRgYRoR4}Pfe0=TO2Bk*I5m%$y4*TF9}Zh(2V0>LQ6 zqD|hs`NORd-Wg$P`a-nAx#G>{T(RJaEef{VK`6-!b^^~YwOZShCemG2D=m^}`XPn> zuH0<6ZF&-ffoS+1iR|4>(Dt+wNUGO2gs2PYwz2m;SGthUBPxhzThiTt%66s=wUaoS zf9XHP6?F0cc8DGkZ&&W5WB>pF literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..90301540865d378862cd31ab19d927899552b81f GIT binary patch literal 832 zcmb7?J4*vW6ou~^A1DaX&PoIeZQ_G~78Y74ib3)~jS-ZXtYjr_VrC**8A!GG2mBS* z(ST^SvJfq81i@y}Mr{%s& zL2aJ(Us=o)tJ6K@2b@b2{I2do_DS_?_=Y4FGeq=Z$v1gN;~BMftX?;ZnFCnzyaycG zL(L0sp2y)xbnQaG+@;vBda%{M%eC=nxk1I(CF9u|M=4(ZqT=UPVk2%^x6NiVToJ}F zy8WUXH)DobnkMd>eQS(9Zko|ZENodY8nw7_Qx#9Gh^yX}Ha8Nc_4I4RJqRPJ=u<^l z?@DGRfn4pzR)4V!80<5^09TJV1z3jh0#EKh9q&8YVOahO`Tg7JqbYmEpCDeR6^i{m z#VwprXc%J9L-+&GlM+usFG@TEy)5xObWGwE=yi!#p^Fl4L7z&TfZIdKrZUL_?P|KlGHRNbbJj_) P9TYWA+l(g*+Lvd?9vzt4L;Id#y%@p<5RpZEJbPaeo8Q|_KSbH({o zDn+rSDMPFt+{=#5Aim5+l^N1dIYFZ|qUtK!&5jZLJ_LJ~lT#Gc5eYNcpX16t0{>ap zaDRk4d;(YYQ8?Gdgn$qb0zyCt2mv7=1cZPP5CTF#2nd1yOQ5t+zV?JiUUeECJG5@umfJ85a-+{i0c|%rmPal3 zdV%WoRoAV%p6+;5Hx1p>5p07f@7`*8`YNL5M6nUyJj|!O>gBKVPj(nx{F|yh3+94d z3*O6!EndCIA;EnaE-()*+RtFgruIA#xhKtuJ)6|P8A-11hjZka{1ivcLS#FVBkHPK VbnqOu1MpkET(^yIzUg3PFtjX$@5R36x-jshyZ3$XefQnjXFp#kEn1dEIxL!? zF(aDK8&^m95>281Kf#_n^y-HoCk>;?98cxCqdAYDdvEBbb9@R}dvU2?6BY9wC*F(W zECyN!5ivpY2-0Z`-j_YkW0-ysNE{WpwmzUBGd2~2x`dRv7`Z=X8fZ})dp0i{~+H+6ol)mLh%`Zyd8%Lxn1=$_$j zEv@#`?sbwA^Sk?(zpkd0rD|Cz2>V;L{)YjdHsPaecUM>Hsrq)v;xia52Iy15((P`V z)R71LWP88VG6V@AsaI_IMQtLfPnd`t&y_AY(%+Qih=!1{bRPjdYh^j-vER%zZ1a!M z@0BH!^aC4=`|2i!6E8t@B)uODCr7Bw)x%xly9g*1I3+F@~SwppBWT+yN+ii1#+7d#C-ztnC= zG%Acx)+;TNX!;?Ac<1X4H>Sry7>I`Nk;v9&39=`hKvGL=6zPGGZY+sj^C^rU;4f0R Br8EEl literal 0 HcmV?d00001 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