From b8a907e66fdf99682420ce3de9ea914c2cfd82d4 Mon Sep 17 00:00:00 2001 From: Simon Fortier Date: Mon, 13 Nov 2017 13:44:48 -0500 Subject: [PATCH] fix links (again) --- Basic-Assembly-tutorial.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Basic-Assembly-tutorial.md b/Basic-Assembly-tutorial.md index d22a22b..823374b 100644 --- a/Basic-Assembly-tutorial.md +++ b/Basic-Assembly-tutorial.md @@ -73,7 +73,7 @@ It is quite simple to add two binary numbers together using the **carry** method 1 + 1 = 0, carry 1 ``` -When the value of a bit exceeds 1, the excess needs to be **carried out** of this bit **into** the left bit (This is an important concept for the [overflow and carry flags](https://github.com/simon987/Much-Assembly-Required/wiki/Central-processing-unit-(CPU)#the-flags-register) later on in the tutorial) +When the value of a bit exceeds 1, the excess needs to be **carried out** of this bit **into** the left bit (This is an important concept for the [overflow and carry flags](https://github.com/simon987/Much-Assembly-Required/wiki/CPU#the-flags-register) later on in the tutorial) So a 16-bit addition in the CPU looks like this: ``` @@ -231,7 +231,7 @@ Using the `objdump` command on Linux, the machine code is translated human-reada ``` The machine code produced by the C compiler can be directly translated to assembly language: `00b8 0000` becomes `mov eax, 0` and `c3` becomes `ret`. We will see what these instructions do very soon. The compilation process varies greatly from language to language, but the end result must be understandable by the CPU. The instructions (machine code numbers) that the CPU can understand vary depending on the CPU's **instruction set**. Most modern consumer processors use the x86-64 (or amd64) instruction set. -The [game's CPU](https://github.com/simon987/Much-Assembly-Required/wiki/Central-processing-unit-(CPU)) is based on the Intel 8086 processor (x86-16 instruction set) +The [game's CPU](https://github.com/simon987/Much-Assembly-Required/wiki/CPU) is based on the Intel 8086 processor (x86-16 instruction set) **So, what does a *32-bit* processor mean?** A 32-bit processor will handle data in 32-bit chunks, and do its calculations with 32-bit numbers. Intel x86 processors are backward compatible, meaning that a 32-bit processor can handle data and do its calculations with 16-bit and 8-bit numbers (That is why the `DWORD PTR` directive is required at offset 4 and b in the previous example: we are telling the CPU that we want to deal with 32-bit numbers (double word) for this instruction).