Basic integer arithmetic – add, subtract, negate, multiply, multiply-and-add, and divide – in their many variations. With some catches for those more used to high-level languages.
Explaining the LDR family of instructions for loading registers, MOV for moving one register to another, STR for storing to memory, and SXTx/UXTx for filling a register with smaller data types.
How conditional branching can slow modern processors down badly, comparing assembly code with that generated by Apple’s Swift compiler, and some puzzles.
How to implement conditional looping such as for and while, and how to break out of a loop. Complete with chart of four conditional idioms.
How little has changed in using assembly language over the last 30+ years. But what about Swift Playgrounds 4, which will let iPads create apps for the App Store?
Forget about structured code, branching in assembly is based on GOTO with labels. Here’s how to get started, with an idiom for the switch statement in Swift.
Using different addressing modes and offset specifications to load and store in memory. Includes a summary of ARM64 Operand Architecture.
Types of register explained, and which are available to pass arguments of different types. Call by value and call by reference distinguished.
First in a series helping you write ARM64 assembly language for M1 Macs. Provides an app within which you can call assembly routines.
How can it take over 5 hours to back up 79 GB of files to a network share? That’s an average transfer rate of 4 MB/s, probably slower than your Internet connection.