preparing to add PDFs - plug for Get Off My L@wn

This commit is contained in:
Perry Kivolowitz 2022-12-26 09:29:20 -06:00
parent 1588e75ae4
commit 6e740187b9

126
README.md
View file

@ -72,32 +72,32 @@ We start by providing what we're calling "bridging" from C and C++ to
assembly language. We use the knowledge you already have to learn new assembly language. We use the knowledge you already have to learn new
knowledge - how cool is that! knowledge - how cool is that!
| Chapter | Content | | Chapter | Markdown | PDF |
| ------- | ------- | | ------- | -------- | --- |
| 1 | [Hello World](./section_1/hello_world/README.md) | | 1 | [Hello World](./section_1/hello_world/README.md) | NA |
| 2 | [If Statements](./section_1/if/README.md) | | 2 | [If Statements](./section_1/if/README.md) | NA |
| 3 | Loops | | 3 | Loops | |
| .... a | [.... While Loops](./section_1/while/README.md) | | .... a | [.... While Loops](./section_1/while/README.md) | NA |
| .... b | [.... For Loops](./section_1/for/README.md) | | .... b | [.... For Loops](./section_1/for/README.md) | NA |
| .... c | [.... Implementing Continue](./section_1/for/README.md#implementing-a-continue) | .... c | [.... Implementing Continue](./section_1/for/README.md#implementing-a-continue) | NA |
| .... d | [.... Implementing Break](./section_1/for/README.md#implementing-a-break) | .... d | [.... Implementing Break](./section_1/for/README.md#implementing-a-break) | NA |
| 4 | Interludes | | 4 | Interludes | |
| .... a | [.... Registers](./section_1/regs/README.md) | | .... a | [.... Registers](./section_1/regs/README.md) | NA |
| .... b | [.... Load and Store](./section_1/regs/ldr.md) | | .... b | [.... Load and Store](./section_1/regs/ldr.md) | NA |
| .... c | [.... More About `ldr`](./section_1/regs/ldr2.md) | | .... c | [.... More About `ldr`](./section_1/regs/ldr2.md) | NA |
| .... d | [.... Register Sizes](./section_1/regs/widths.md) | | .... d | [.... Register Sizes](./section_1/regs/widths.md) | NA |
| 5 | [`switch`](./section_1/jump_tables/README.md) | | 5 | [`switch`](./section_1/jump_tables/README.md) | NA |
| 6 | Functions | | 6 | Functions | |
| .... a | [.... Calling and Returning](./section_1/funcs/README.md) | | .... a | [.... Calling and Returning](./section_1/funcs/README.md) | NA |
| .... b | [.... Passing Parameters](./section_1/funcs/README2.md) | | .... b | [.... Passing Parameters](./section_1/funcs/README2.md) | NA |
| .... c | [.... Calling common C runtime functions](./section_1/funcs/README3.md) | | .... c | [.... Calling common C runtime functions](./section_1/funcs/README3.md) | NA |
| 7 | [FizzBuzz - a Complete Program](./section_1/fizzbuzz/README.md) | | 7 | [FizzBuzz - a Complete Program](./section_1/fizzbuzz/README.md) | NA |
| 8 | Structs | | 8 | Structs | |
| .... a | [.... Alignment](./section_1/structs/alignment.md) | | .... a | [.... Alignment](./section_1/structs/alignment.md) | NA |
| .... b | [.... Defining](./section_1/structs/defining.md) | | .... b | [.... Defining](./section_1/structs/defining.md) | NA |
| .... c | [.... Using](./section_1/structs/using.md) | | .... c | [.... Using](./section_1/structs/using.md) | NA |
| 9 | [`const`](./section_1/const/README.md) | 9 | [`const`](./section_1/const/README.md) | NA |
| 10 | [Casting](./section_1/casting/README.md) | | 10 | [Casting](./section_1/casting/README.md) | NA |
## Section 2 - Floating Point ## Section 2 - Floating Point
@ -105,43 +105,65 @@ Floating point operations use their own instructions and their own set
of registers. Therefore, floating point operations are covered in their of registers. Therefore, floating point operations are covered in their
own section: own section:
| Chapter | Content | | Chapter | Markdown | PDF |
| ------- | ------- | | ------- | -------- | --- |
| 1 | Floating Point | | 1 | Floating Point | |
| .... a | [.... What Are Floating Point Numbers?](./section_2/float/what.md) | .... a | [.... What Are Floating Point Numbers?](./section_2/float/what.md) | NA |
| .... b | [.... Registers (simplified)](./section_2/float/working.md) | .... b | [.... Registers (simplified)](./section_2/float/working.md) | NA |
| .... c | [.... Literals](./section_2/float/literals.md) | .... c | [.... Literals](./section_2/float/literals.md) | NA |
| .... d | [.... `fmov` Not Yet Written](./section_2/float/) | .... d | [.... `fmov` Not Yet Written](./section_2/float/) | NA |
| .... e | [.... Conversion To / From Integers](./section_2/float/rounding.md) | .... e | [.... Conversion To / From Integers](./section_2/float/rounding.md) | NA |
| .... f | [.... Four Basic Operations Not Yet Written](./section_2/float/) | .... f | [.... Four Basic Operations Not Yet Written](./section_2/float/) | NA |
| .... g | [.... Selected Additional Operations Not Yet Written](./section_2/float/) | .... g | [.... Selected Additional Operations Not Yet Written](./section_2/float/) | NA |
| .... z | [.... Half Precision Floats](./section_2/float/half.md) | .... z | [.... Half Precision Floats](./section_2/float/half.md) | NA |
## Section 3 - Bit Manipulation ## Section 3 - Bit Manipulation
What would a book about assembly language be without bit bashing? What would a book about assembly language be without bit bashing?
| Chapter | Content | | Chapter | Markdown | PDF |
| ------- | ------- | | ------- | -------- | --- |
| 1 | Bit Fields | | 1 | Bit Fields | |
| .... a | [.... Without Bit Fields](./section_3/bitfields/README.md) | | .... a | [.... Without Bit Fields](./section_3/bitfields/README.md) | NA |
| .... b | [.... With Bit Fields](./section_3/bitfields/with.md) | | .... b | [.... With Bit Fields](./section_3/bitfields/with.md) | NA |
| .... c | [.... Review of Newly Described Instructions](./section_3/bitfields/review.md) | .... c | [.... Review of Newly Described Instructions](./section_3/bitfields/review.md) | NA |
## Section 4 - More Stuff ## Section 4 - More Stuff
| Chapter | Content | | Chapter | Markdown | PDF |
| ------- | ------- | | ------- | -------- | --- |
| --- | [Determining string literal lengths for C functions](./more/strlen_for_c/README.md) | | --- | [Determining string literal lengths for C functions](./more/strlen_for_c/README.md) | NA |
## Projects ## Projects
[Here](./projects/README.md) are some project specifications to offer a [Here](./projects/README.md) are some project specifications to offer a
challenge to your growing mastery. challenge to your growing mastery. Here are very brief descriptions
presented in alphabetical order.
Perhaps before you tackle these, check out the fully described
[FIZZBUZZ](./section_1/fizzbuzz/README.md) program first.
---
The [DIRENT](./projects/DIRENT/README.md) project demonstrates how a The [DIRENT](./projects/DIRENT/README.md) project demonstrates how a
complex `struct` can be used in assembly language. complex `struct` can be used in assembly language.
---
The [PI](./projects/PI/README.md) project demonstrates floating point
instructions. The program will "throw darts at a target," calculating
an approximation of PI by tracking how many darts "hit the target"
versus the total number of darts "thrown".
---
The [SNOW](./projects/snow/README.md) project uses 1970's era tech to
animate a simple particle system. This project demonstrates a reasonable
design process of breaking down complex problems into simpler parts.
---
The [WALKIES](./projects/walkies/README.md) presents a cute little
animation demonstrating looping with some pointer dereferencing.
---
## About The Author ## About The Author
Perry Kivolowitz's career in the Computer Sciences spans just under five Perry Kivolowitz's career in the Computer Sciences spans just under five
@ -180,10 +202,18 @@ ISAs:
This work is dedicated to my wife Sara and sons Ian and Evan. This work is dedicated to my wife Sara and sons Ian and Evan.
### Gratuitous Plug ### Gratuitous Plugs
Perry has created a library of about 200 programming projects Perry has created a library of about 200 programming projects
suitable for CS 1, CS 2, Data Structures, Networking, Operating suitable for CS 1, CS 2, Data Structures, Networking, Operating
Systems and Computer Organization classes. If a publisher of Systems and Computer Organization classes. If a publisher of
CS text books be interested in purchasing the library, please CS text books be interested in purchasing the library, please
reach out. reach out.
Also, check out [Get Off My L@wn](https://www.amazon.com/Get-Off-My-Zombie-Novel-ebook/dp/B00DQ26J8G), a Zombie novel for
coders. You read that right... elite programmer Doug Handsman retires
to his wife Ruth Ann's native northern Wisconsin. And then, well, the
apocalypse happens. Bummer.
Rated 4.3 out of 5 with more than 70 reviews, it's a fun read and costs
next to nothing.