You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/post/multiply.md
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,9 +8,7 @@ tags = ["dev", "gba", "arm"]
8
8
This blog post assumes a base level of knowledge - comfort in the C programming language and bitwise math is recommended. Also, if you ever have any questions, any at all, while reading this blog post, feel free to reach out to me [here](
9
9
https://github.com/bmchtech/blog/discussions).
10
10
11
-
The Gameboy Advance has a pretty neat CPU - the ARM7TDMI. And by neat, I mean a chaotic and
12
-
sadistic bundle of questionable design decisions. Seriously, they decided that the program counter should
13
-
be a _general purpose register_. Why??? That's like allowing a drunk driver to change their tires while going 30 over the speed limit near a school. I'm not even joking, you can use the program
11
+
The Gameboy Advance has a pretty neat CPU - the ARM7TDMI. This CPU is quite complicated - it allows the program counter to be used a _general purpose register_, implying it can be used as the output to any data processing instruction. That's like allowing a drunk driver to change their tires while going 30 over the speed limit near a school. It's a unique feature that can lead to very funny instructions. For example, you can use the program
14
12
counter as the output to, say, an XOR instruction. Or an AND instruction.
0 commit comments