From 43e0146f6f3ee831c50589c9f78ada9d4c6794ab Mon Sep 17 00:00:00 2001 From: Joe Tretter Date: Wed, 5 Aug 2026 14:40:34 -0500 Subject: [PATCH] checking in all chnages, including todays play with gnu-as --- bootloader1/boot.bin | Bin 0 -> 512 bytes bootloader1/bootsect.img | Bin 0 -> 512 bytes bootloader1/floppy.img | Bin 0 -> 512 bytes counter/counter | Bin 0 -> 9872 bytes counter/counter.o | Bin 0 -> 2864 bytes counter2/counter | Bin 0 -> 9872 bytes counter2/counter.o | Bin 0 -> 2880 bytes gnu-asm/hello1/hello | Bin 0 -> 9320 bytes gnu-asm/hello1/hello.o | Bin 0 -> 1608 bytes gnu-asm/hello1/hello.s | 93 ++++++++++++++++++++++++++++++++++ gnu-asm/hello1/hello.stripped | Bin 0 -> 8712 bytes gnu-asm/hello1/run.sh | 7 +++ 12 files changed, 100 insertions(+) create mode 100644 bootloader1/boot.bin create mode 100644 bootloader1/bootsect.img create mode 100644 bootloader1/floppy.img create mode 100755 counter/counter create mode 100644 counter/counter.o create mode 100755 counter2/counter create mode 100644 counter2/counter.o create mode 100755 gnu-asm/hello1/hello create mode 100644 gnu-asm/hello1/hello.o create mode 100644 gnu-asm/hello1/hello.s create mode 100755 gnu-asm/hello1/hello.stripped create mode 100755 gnu-asm/hello1/run.sh diff --git a/bootloader1/boot.bin b/bootloader1/boot.bin new file mode 100644 index 0000000000000000000000000000000000000000..2b5a6638a2c135769f382c263701a9519773277f GIT binary patch literal 512 ecmdnOx505c!)Erg0>8ez{>v~5MpOudt^xpcun5-x literal 0 HcmV?d00001 diff --git a/bootloader1/bootsect.img b/bootloader1/bootsect.img new file mode 100644 index 0000000000000000000000000000000000000000..77c260e99212d0be9afa059071d640a166f48b11 GIT binary patch literal 512 zcmaEzJb{5mpn(x;@c&;ECVV^8P{R7{P(caPriNFQH4F@f2l{UGUD(5*@Owc@jm`fO zrjA2FyTw_)u``#j?dzz0A zX$yho8(vELZqjiPM3t~uyKvN+|2x=m)ZoCu7fc)nJ1#_Z90OX_ci8au4n`)R#d1A| z6XbR>F!tRx{I;K=q3_tA&r9VK|EopS?CYz2&Ae}J?F$ozeT!;e=rNp?c>T{kDAY-T z!96uUm%$^kC`G{~vpAa}C^a#KLBX}CD8Go8i(xk-!xp}?0&8p-O1~VQ^I_2}28IR& YMTX{o|Nk>^Ffi=CYcEe~Oopxk0D?iHoB#j- literal 0 HcmV?d00001 diff --git a/bootloader1/floppy.img b/bootloader1/floppy.img new file mode 100644 index 0000000000000000000000000000000000000000..2b5a6638a2c135769f382c263701a9519773277f GIT binary patch literal 512 ecmdnOx505c!)Erg0>8ez{>v~5MpOudt^xpcun5-x literal 0 HcmV?d00001 diff --git a/counter/counter b/counter/counter new file mode 100755 index 0000000000000000000000000000000000000000..dc3fc2d51cf189dd420fd7fd1aad56c224527a9a GIT binary patch literal 9872 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 Ra$x&kaQqga$T;$xe**w54w?V} literal 0 HcmV?d00001 diff --git a/gnu-asm/hello1/hello b/gnu-asm/hello1/hello new file mode 100755 index 0000000000000000000000000000000000000000..51bb27ae48821b9ff0c3e0059be34bfb788c47a4 GIT binary patch literal 9320 zcmeI2&ubGw6vtoFpH?K1Ui^VLsZkOCr|zb@x7UOZMtnJ6pwFU_s#pvdo#1&og5}RZyv8b$&HNx zmmE9<>lI2CxjR5@o+AKCa37}dJ_FM>cH*cBYnmdNvw5C8 zpDsoe5Cud5Q9u+B1w;W+Kok%KL;+Di6!@9n>TO;^w&kq($SQ{!edP_k9?KEk&jW>~QZGvrack8$GcB9_X zKyNpycDF$9)D5J%tz#2)wCT3lX(UM-qNv*GL>&{S1|q!~n;0PI>^4nYMQc)LYg{vW z$3T!KHZW)K4k;IT7DXvBRZ^4l!J5 zuJAfh&b{U_n{56aY?#K2^ZERTQZ9qfe>e~DY|QaO>x$U8$Gq+;%7K#SZ2V)fdwlMP x6wk9L=hXa!NuP^&@%UF$*kgiU|He2rTG92^JI-7B>j4DU?NoMLd<1owbEF3CVi8bTg5ujnRINtPo(1hPnA2@Z-_Kqjc8 zWizjL%3q!0M+3=eP0z~ms*&BJKRB)`f}5eOwHlrBcm5euwrE1TY|$imJ_xxx%-m_5 zr*0IE*|r<7(I|GC6a_eg%f&^>Pj>g92F{EawIp#YU()K|y6CnVtBdZ-T=o}RTnd~M zUIXZUO_Ba8zao+vAoZeR^Avtda5~|#+!d|^UzRaEP<+?oJBsgF{2BTi^V>6mNg9t6 z4pQ}4v=0M%4)Ry{5jz|WBL?)8dj0$W*ks5dWeE#;FJnAUv@?q11bP_{Q?4gmP(}?k zt&>v9O@q^&Yff(}3FVsnKv2mk)>8gEgPZxE3{Lr%ln-7u9rLh{nx|3^w3V_^=y5jT z;O&Pz1h1cE;H9y2qL?%9Wt4k(RS8S^RCoL@?P4|Un?5m9eC2#KA=;E{$~AQ8t?^BW z_Fpxu_ZZ-^;x`mG{$@nvM8$1o&%ccc)YGol8}+RQ8C~1y*|Ijm9sJURMp>Cn(EHu()IfO){(889oYx9p%-YIqT0<7 ReIHfz69v2TOljEl{{S4ise=Fj literal 0 HcmV?d00001 diff --git a/gnu-asm/hello1/hello.s b/gnu-asm/hello1/hello.s new file mode 100644 index 0000000..4b36a84 --- /dev/null +++ b/gnu-asm/hello1/hello.s @@ -0,0 +1,93 @@ +# hello.s +# +# Ask for the user's name, then print: +# Hello +# five times. + +.section .rodata + +prompt: + .ascii "What is your name? " +prompt_end: + +hello: + .ascii "Hello " +hello_end: + +newline: + .byte 10 # ASCII newline: '\n' + + +.section .bss + + .align 16 +name_buf: + .skip 64 # Reserve 64 bytes for the name + + +.section .text + + .global _start + +_start: + # write(STDOUT, prompt, prompt_length) + mov $1, %rax # syscall 1: write + mov $1, %rdi # file descriptor 1: stdout + lea prompt(%rip), %rsi # address of prompt + mov $(prompt_end - prompt), %rdx + syscall + + # read(STDIN, name_buf, 63) + xor %rax, %rax # syscall 0: read + xor %rdi, %rdi # file descriptor 0: stdin + lea name_buf(%rip), %rsi + mov $63, %rdx + syscall + + # RAX contains the number of bytes read. + # Exit if read returned zero or an error. + test %rax, %rax + jle exit + + # Save the length of the name in R12. + mov %rax, %r12 + + # Remove the trailing newline entered by the user. + lea name_buf(%rip), %rbx + cmpb $10, -1(%rbx,%r12) + jne repeat_setup + dec %r12 + +repeat_setup: + mov $5, %r13 # Loop counter + +repeat_loop: + # Write "Hello " + mov $1, %rax + mov $1, %rdi + lea hello(%rip), %rsi + mov $(hello_end - hello), %rdx + syscall + + # Write the user's name + mov $1, %rax + mov $1, %rdi + lea name_buf(%rip), %rsi + mov %r12, %rdx + syscall + + # Write newline + mov $1, %rax + mov $1, %rdi + lea newline(%rip), %rsi + mov $1, %rdx + syscall + + dec %r13 + jne repeat_loop + +exit: + # exit(0) + mov $60, %rax # syscall 60: exit + xor %rdi, %rdi # exit status 0 + syscall diff --git a/gnu-asm/hello1/hello.stripped b/gnu-asm/hello1/hello.stripped new file mode 100755 index 0000000000000000000000000000000000000000..59fd3183bc1d14ef51d61978ab321f03078c0b37 GIT binary patch literal 8712 zcmeI2!AcxK5Qb}4*90Z(22Tcp4dN{f?m_S%aS+s55LpoMJmL@ox+62as1TwTK@SUg z2@k$Q4ogVb9P}jwPd>!h)m61Fn}A?)tcIDY`n&(`=DYPwpRTO0mP;j&R)&w@t6JzK zdIMY-U$V9UV-UKh;>V6Yb-66$isCn(S|Ze_8|4b7Tm!Es@jDFzi82m-em%njOh^gG zCd(2BePgaq^yVD-B(kl)d-35~_!vVY46h?`j%1Mdn(NJbyZaI!+chWwC7=Y9fD%vw zN>rvzK zXViKB#_7vvUuKH&_DG|+Y4m>Kq5h9auW3>|fV)YDm;5~quzq>>m!2c?;nu2^MseG| za^^)`pNt4KnW-TC7=YJA+Ws{Tk|pPF$p`hVCi#l!a6#+LivU+SWUM{;cCp&EjGFSnVEcObCIv4tQ@cVinv&`NC* zd}_6W!z?{aGJ68SPM*^&|NfqEQ{bNP6N7L4`vg?>?-6jf?4L_`>k`z;BJh8HFeJPa zo#U{7%IUA%BYwFbU