mirror of
https://github.com/pkivolowitz/asm_book.git
synced 2026-06-24 07:56:48 +08:00
preparing to add PDFs - plug for Get Off My L@wn
This commit is contained in:
parent
1588e75ae4
commit
6e740187b9
1 changed files with 78 additions and 48 deletions
126
README.md
126
README.md
|
|
@ -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.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue