- Author
- Not stated
- Published
- Undated
- Kind
- GitHub README acting as a chapter-by-chapter porting guide
- Original
- github.com/below/HelloSilicon
- Subject
- Systems and hardware
What it is
The README is a companion to the book Programming with 64-Bit ARM Assembly Language. The writer codes along with the book and adjusts the samples for Apple silicon Macs. The document follows the book's chapter headings.
What it says
- The README says it follows a 64-bit ARM assembly book, adapted to Apple silicon.
- It says Darwin differs from Linux in syscall number, number register and interrupt call.
- It says the Clang assembler needs different syntax from the GNU assembler.
- It says Darwin rejects absolute addressing, so ADRP with @PAGE and @PAGEOFF is used.
- It says variadic functions like printf take their arguments on the stack on Darwin.
- It says lldb replaces gdb on macOS and links a command map.
- It says several chapters need no change, and the Chapter 16 exploit cannot be reproduced.
What evidence it gives
The README shows command output, error messages and short assembly listings. It quotes Apple documentation, the LLVM source and a reply from the book's author. It cites the author's own working sample files.
Interests and limits
The page is a personal guide, not official Apple material. It lists Xcode 12.2 or later and macOS Big Sur as prerequisites. Later changes may differ. Only the README was read, not the sample files it links. Darwin syscall numbers are called private and subject to change.