From 03f4375e7223434aa94b62a06036b85b69fe3822 Mon Sep 17 00:00:00 2001 From: Alexis Hovorka Date: Sat, 17 Aug 2024 21:05:12 -0600 Subject: [fix] Add reference to bcompiler --- posts/20240817-aarch64-bootstrapping-1.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'posts') diff --git a/posts/20240817-aarch64-bootstrapping-1.md b/posts/20240817-aarch64-bootstrapping-1.md index 34e7b76..9101a6b 100644 --- a/posts/20240817-aarch64-bootstrapping-1.md +++ b/posts/20240817-aarch64-bootstrapping-1.md @@ -17,16 +17,17 @@ from scratch. [^newlaptop]: [MNT Pocket Reform](https://www.crowdsupply.com/mnt/pocket-reform) Ideally I'd like to have started off by `cat`ting raw hexadecimal into a file -and building up from there, or something to that effect, but my new laptop uses -AArch64, also known as Arm64.[^aarch64] That's the instruction set used in most -smartphones and newer Macs, and as a RISC-ish ISA it's quite a bit cleaner than -the convoluted mess x86/64 has grown into, but it's also significantly more -difficult to write by hand. I gave it a good shot, but on top of the -instruction fields being weirdly aligned and my near-complete inexperience with -directly using the instruction set, I finally relented when I realized that ELF -executables have to be little-endian,[^endian] meaning I'd have to write the -raw, unfamiliar instructions *backwards.* - +and building up from there,[^bcompiler] or something to that effect, but my new +laptop uses AArch64, also known as Arm64.[^aarch64] That's the instruction set +used in most smartphones and newer Macs, and as a RISC-ish ISA it's quite a bit +cleaner than the convoluted mess x86/64 has grown into, but it's also +significantly more difficult to write by hand. I gave it a good shot, but on +top of the instruction fields being weirdly aligned and my near-complete +inexperience with directly using the instruction set, I finally relented when I +realized that ELF executables have to be little-endian,[^endian] meaning I'd +have to write the raw, unfamiliar instructions *backwards.* + +[^bcompiler]: [`bcompiler` --- one of the inspirations for this project](https://github.com/certik/bcompiler) [^aarch64]: [AArch64 instruction set quick reference sheet](https://courses.cs.washington.edu/courses/cse469/19wi/arm64.pdf) [^endian]: [Wikipedia: Endianness](https://en.wikipedia.org/wiki/Endianness) -- cgit v1.2.3-70-g09d2