diff options
author | pommicket <pommicket@gmail.com> | 2021-11-10 12:55:41 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2021-11-10 12:55:41 -0500 |
commit | 2288e47516189fc10874b565d1d7d64bbbba4a47 (patch) | |
tree | e0dcb8ba8a4257a868f006792ce3da06351af260 /README.md | |
parent | 3255cd32d787c7b8e68e9848cab7d4042954f177 (diff) |
readme tweaks, mainly
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 27 |
1 files changed, 16 insertions, 11 deletions
@@ -17,7 +17,14 @@ Note that the executables produced in this series will only run on 64-bit Linux, because each OS/architecture combination would need its own separate executable. -The README for the first stage is [here](00/README.md). +## table of contents + +- [stage 00](00/README.md) - a program converting a text file with +hexadecimal digit pairs to a binary file. +- [stage 01](01/README.md) - a language with comments, and 2-character +command codes. +- [stage 02](02/README.md) - a language with labels +- more coming soon (hopefully) ## prerequisite knowledge @@ -44,8 +51,7 @@ decimal. - ASCII, null-terminated strings - how pointers work - how floating-point numbers work -- maybe some basic Intel-style x86-64 assembly (you can probably pick it up on -the way though) +- some basic Intel-style x86-64 assembly It will help you a lot to know how to program (with any programming language), but it's not strictly necessary. @@ -53,12 +59,11 @@ but it's not strictly necessary. ## instruction set x86-64 has a *gigantic* instruction set. The manual for it is over 2,000 pages -long! So, it makes sense to select only a small subset of it to use for all the -stages of our compiler. The set I've chosen can be found in `instructions.txt`. +long! So it makes sense to select only a small subset of it to use. +The set I've chosen can be found in `instructions.txt`. I think it achieves a pretty good balance between having few enough instructions to be manageable and having enough instructions to be useable. -To be clear, you don't need to read that file to understand the series, at least -not right away. +To be clear, you don't need to read that file to understand the series. ## principles @@ -91,15 +96,15 @@ project can't necessarily even do that though, because the Linux kernel, which we depend on, is compiled from C, so we can't fully trust *it*. To *truly* create a fully trustable compiler, you'd need to manually write to a USB with a circuit, create an operating system from nothing (without even a text editor), -and then follow this series, or maybe you don't even trust your CPU vendor... -I'll leave that to someone else +and then follow this series, or maybe you don't even trust your CPU... +I'll leave that to someone else. ## license ``` This project is in the public domain. Any copyright protections from any law -for this project are forfeited by the author(s). No warranty is provided for -this project, and the author(s) shall not be held liable in connection with it. +are forfeited by the author(s). No warranty is provided, and the author(s) +shall not be held liable in connection with it. ``` ## contributing |