diff options
author | Alexis Hovorka <[email protected]> | 2024-08-17 21:05:12 -0600 |
---|---|---|
committer | Alexis Hovorka <[email protected]> | 2024-08-17 21:05:12 -0600 |
commit | 03f4375e7223434aa94b62a06036b85b69fe3822 (patch) | |
tree | 00a455e844cdf2c0d9e2f423ef9d72551d306854 /posts | |
parent | 3712c0af48b9cc68fe52729cb7aa24006e35cb5d (diff) |
[fix] Add reference to bcompiler
Diffstat (limited to 'posts')
-rw-r--r-- | posts/20240817-aarch64-bootstrapping-1.md | 21 |
1 files changed, 11 insertions, 10 deletions
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) |