added jit compiler images

This commit is contained in:
Stephen Diehl 2016-01-10 21:47:58 -05:00
parent 4acb416e10
commit d8deca44e0
9 changed files with 7 additions and 7 deletions

View File

@ -41,14 +41,14 @@ was first developed for the Intel 8086 CPU family. The base types which hardware
operates over are integers and floating point types. Let us just consider the
integral types for now, these come in four major varieties:
<img src="/images/bits.png"></img>
![](img/bits.png)
On the Intel architecture numbers are represented *little endian* meaning lower
significant bytes are stored in lower memory addresses. The whole memory
representation for a value is partitioned into *high bits* and *low bits*. For
example the hexadecimal number ``0xc0ffee`` as a DWORD is stored in memory as:
<img src="/images/coffee.png"></img>
![](img/coffee.png)
In Haskell unboxed integral machine types are provided by the ``Data.Word``
[module](https://hackage.haskell.org/package/base-4.8.1.0/docs/Data-Word.html).
@ -109,7 +109,7 @@ Each of these registers can be addressed as a smaller register containing a
subset of the lower bits. The 32-bit register of ``rax`` is ``eax``. These are
shown in the table below.
<img src="/images/registers.png"></img>
![](img/registers.png)
These smaller registers are given specific names with modified prefixes.
@ -614,7 +614,7 @@ prefix opcode data assembly meaning
Ok, let's look at the full structure of an instruction. It consists of several
parts.
<img src="/images/opcode.png" width=100%></img>
![](img/opcode.png)
<!--
- Prefix
@ -648,7 +648,7 @@ Prefix Opcode Mod R/M Scale Index Base Displacement Immediate
**Prefix**
<img src="/images/Prefix.png"></img>
![](img/Prefix.png)
The header fixes the first four bits to be constant ``0b0100`` while the next
four bits indicate the pretense of W/R/X/B extensions.
@ -673,7 +673,7 @@ The W bit modifies the operation width. The R, X and B fields extend the registe
**ModR/M byte**
<img src="/images/ModRM.png"></img>
![](img/ModRM.png)
The Mod-Reg-R/M byte determines the instruction's operands and the addressing
modes. These are several variants of addressing modes.
@ -744,7 +744,7 @@ ModRM = 0b11000011
ModRM = 0xc3
```
<img src="/images/ModRM_example.png"></img>
![](img/ModRM_example.png)
<hr/>

BIN
img/ModRM.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
img/ModRM_example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
img/Prefix.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
img/Scale.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
img/bits.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
img/coffee.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
img/opcode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
img/registers.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB