|
@@ -211,3 +211,50 @@ Peu d’instructions, faible emprunte silicium.
|
211
|
211
|
- _Complex Instruction Set Computer_ (CISC) : Intel X86, ARMv8
|
212
|
212
|
Instructions complexes simplifiantes. Énorme emprunte silicium.
|
213
|
213
|
|
|
214
|
+# Intel x86
|
|
215
|
+
|
|
216
|
+- Mode Réel, 16 bits
|
|
217
|
+- Mode Protégé, 32 bits
|
|
218
|
+- IA32e, 642 bits
|
|
219
|
+
|
|
220
|
+- Pointeur d'instrucions : ip
|
|
221
|
+- Généraux : a, b, c, d, r[8-15](IA32e, 64 bits)
|
|
222
|
+- Tête de Pile : sp
|
|
223
|
+- Base de Pile : bp
|
|
224
|
+- Index, copie mémoire : si, di
|
|
225
|
+- Flags d'état [er]flags : c, z, o,
|
|
226
|
+
|
|
227
|
+## Architecture
|
|
228
|
+
|
|
229
|
+- Unité Aritmétique et logique (ALU) 64-bits (8 à 64)
|
|
230
|
+- Unités Mémoire
|
|
231
|
+ - Octet (b) : 8-bits, [abcd][1h] (1 poid faible et h en poid fort)
|
|
232
|
+ - mot (w) : 16 bit [abcd]x, sp, bp, di, ...
|
|
233
|
+ - double mot (l) : 32 bit, e[abcd]x, esp, ebp, edi, ...
|
|
234
|
+ - quadruple mot (q) : 64 bits, r[abcd]x, rsp, rbp, rdi
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+## Jeu d'instructions
|
|
238
|
+```x86asm
|
|
239
|
+mov <src> <dest> accès mémoire, affectation
|
|
240
|
+push <src> gestion de la pile
|
|
241
|
+pop <dst> gestion de la pile
|
|
242
|
+movs copie directe mémoire (memcpy, @su++ vers @di++)
|
|
243
|
+rep movsb , exécute c fois movsb
|
|
244
|
+
|
|
245
|
+-- Artimétique
|
|
246
|
+and, or, xor : opérations bits à bits
|
|
247
|
+test <a> <b> <a> and <b> bit à bit
|
|
248
|
+cmp <a> <b> <a> - <b> suivi d un jump
|
|
249
|
+add, mul, sub, div arithmétique, <dst> = <src> op <dst>
|
|
250
|
+shl, shr décalage à gauche / droite, <dst> = <dst> op <dec>
|
|
251
|
+
|
|
252
|
+-- Sauts
|
|
253
|
+jmp intrinsèquement saut inconditionnel
|
|
254
|
+
|
|
255
|
+cmp
|
|
256
|
+jmp saut conditionnel, cmp va modifier un flag lu par jmp
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+```
|