diff --git a/Readme.md b/Readme.md index 0d53e45..81a9509 100644 --- a/Readme.md +++ b/Readme.md @@ -7,6 +7,45 @@ Speficially, those used on the following machines: * Modern personal computers (MS Windows, Linux, or Mac) * Video Game Consoles (fourth gen and up) +# Significant Authorship + +These are in alphabetical order by author. + +## Brian Robert Callahan + +[Demystifying programs that create programs](https://briancallahan.net/blog/20210407.html) + +* [Part 1: A disassembler](https://briancallahan.net/blog/20210407.html) +* [Part 2: Starting an assembler](https://briancallahan.net/blog/20210408.html) +* [Part 3: Globals, passes, and error handling](https://briancallahan.net/blog/20210409.html) +* [Part 4: Parsing](https://briancallahan.net/blog/20210410.html) +* [Part 5: Processing our first opcode](https://briancallahan.net/blog/20210411.html) +* [Part 6: Processing more opcodes](https://briancallahan.net/blog/20210412.html) +* [Part 7: Further opcode processing](https://briancallahan.net/blog/20210413.html) +* [Part 8: Finishing opcode processing](https://briancallahan.net/blog/20210414.html) +* [Source](https://github.com/ibara/d80) + +## Casey Muratori + +[Performance-Aware Programming Series](https://www.computerenhance.com/p/table-of-contents) +Book Cover + +* Part 1: Reading ASM + * [Instruction Decoding on the 8086](https://www.computerenhance.com/p/instruction-decoding-on-the-8086) + * [Decoding Multiple Instructions and Suffixes](https://www.computerenhance.com/p/decoding-multiple-instructions-and) + * [Opcode Patterns in 8086 Arithmetic](https://www.computerenhance.com/p/opcode-patterns-in-8086-arithmetic) + * [8086 Decoder Code Review](https://www.computerenhance.com/p/8086-decoder-code-review) + * [Using the Reference Decoder as a Shared Library](https://www.computerenhance.com/p/using-the-reference-decoder-as-a) + * [Simulating Non-memory MOVs](https://www.computerenhance.com/p/simulating-non-memory-movs) + * [Simulating ADD, SUB, and CMP](https://www.computerenhance.com/p/simulating-add-jmp-and-cmp) + * [Simulating Conditional Jumps]() + * [Simulating Memory]() + * [Simulating Real Programs]() + * [Other Common Instructions]() + * [The Stack]() + * [From 8086 to x64]() + * [8086 Simulation Code Review]() + ## David Salomon https://www.davidsalomon.name @@ -14,16 +53,22 @@ https://www.davidsalomon.name [Assemblers and Loaders (1993)](https://www.davidsalomon.name/assem.advertis/AssemAd.html) Book Cover +## Ian Lance Taylor + +[20 part Linker Essay (on LWN)](https://lwn.net/Articles/276782/) +Preview ## John R. Levine https://www.johnlevine.com/index.phtml -[Linkers and Loaders (2000)](https://linker.iecc.com) +[Linkers and Loaders (2000)](https://linker.iecc.com) +Book Cover -## Ian Lance Taylor +## Michael Abrash -[20 part Linker Essay (on LWN)](https://lwn.net/Articles/276782/) +[Zen of Assembly Language](https://www.jagregory.com/abrash-zen-of-asm/) +Book Cover ## Tools @@ -35,14 +80,24 @@ Order by interest. My preference was on simple tools written in a C-like, data-o [YASM (Rewrite of (some) of Netwide in C)](https://yasm.tortall.net) +* [Design](https://www.tortall.net/projects/yasm/reference/design/design.pdf) +* [User Manual](https://www.tortall.net/projects/yasm/manual/manual.pdf) +* [libyasm](https://www.tortall.net/projects/yasm/reference/libyasm-doc/html/files.html) + +[DynASM](https://github.com/Esvandiary/DynASM) + [AsmJit](https://github.com/asmjit) +* [AsmTK](https://github.com/asmjit/asmtk) + [FASM](https://flatassembler.net) [VASM](http://sun.hasenbraten.de/vasm/) [HLA](https://plantation-productions.com/Webster/HighLevelAsm/index.html) +[TASM](https://github.com/qb40/tasm) + Everything below is just noted to exist but I don't care for. [Netwide Assembler](https://www.nasm.us) @@ -56,3 +111,7 @@ Everything below is just noted to exist but I don't care for. * [PE Format](https://learn.microsoft.com/en-us/windows/win32/debug/pe-format?redirectedfrom=MSDN) * [ELF](https://wiki.osdev.org/ELF) * [Mach-O](https://github.com/aidansteele/osx-abi-macho-file-format-reference/blob/master/Mach-O_File_Format.pdf) + +## Misc + +[SBCL: the ultimate assembly code breadboard](https://pvk.ca/Blog/2014/03/15/sbcl-the-ultimate-assembly-code-breadboard/) diff --git a/assets/Computer Enhance banner.jpg b/assets/Computer Enhance banner.jpg new file mode 100644 index 0000000..4a30922 Binary files /dev/null and b/assets/Computer Enhance banner.jpg differ diff --git a/assets/IAN LANCE 20 part (preview).png b/assets/IAN LANCE 20 part (preview).png new file mode 100644 index 0000000..db5b697 Binary files /dev/null and b/assets/IAN LANCE 20 part (preview).png differ diff --git a/assets/LINKERS & LOADERS (cover).png b/assets/LINKERS & LOADERS (cover).png new file mode 100644 index 0000000..1fedf3f Binary files /dev/null and b/assets/LINKERS & LOADERS (cover).png differ diff --git a/assets/ZEN OF ASSEMBLY LANGUAGE (cover).jpg b/assets/ZEN OF ASSEMBLY LANGUAGE (cover).jpg new file mode 100644 index 0000000..df0da6e Binary files /dev/null and b/assets/ZEN OF ASSEMBLY LANGUAGE (cover).jpg differ