Add first part assembly language course
This commit is contained in:
parent
895172baad
commit
e7967137c1
1 changed files with 35 additions and 0 deletions
|
@ -87,4 +87,39 @@ C'est un langage non structuré avec des **instructions arithmétiques simples**
|
|||
Les commentaires sont essentiels afin de marquer les points essentiels du code
|
||||
(début de test, branchement) et le rendre pus intelligible.
|
||||
|
||||
### Un peu d'histoire
|
||||
|
||||
* 1971: *Intel* commercialise le 4004 cadencé à 740 Khz et avec 640 bits de
|
||||
mémoire
|
||||
* 1972: *Intel* commercialise le 8008, registres de 8bits et 800Khz de
|
||||
fréquence
|
||||
* 1978: *Intel* commercialise le 8086 avec des registres de 16 bits et cadancé
|
||||
jusqu'à 10 Mhz.
|
||||
* 1985: *Intel* commercialise le 386 aved des registres de 32 bits et 4Go de
|
||||
mémoire adressable. Ce processeur introduit la mémoire virtuelle.
|
||||
* 1997: *Intel* commercialise le Pentium
|
||||
|
||||
### Un peu de vocabulaire
|
||||
|
||||
Voici un code en C :
|
||||
|
||||
```c
|
||||
t[i]++
|
||||
```
|
||||
|
||||
Et son équivalent en assembleur :
|
||||
|
||||
```asm
|
||||
addl1 $1, t(%eax,4)
|
||||
```
|
||||
|
||||
* `addl` : mnémonique, ici *add long*
|
||||
* `$1` est `t(%eax,4)` sont des opérandes
|
||||
* `$1` est une immédiat
|
||||
* `%eax` est un resgistre
|
||||
* `t` est une référence, il pointe vers un endroit de la mémoire
|
||||
* `4` est un multiplicateur
|
||||
|
||||
On peu en déduire que `t(%eax,4)` est une **adresse mémoire**.
|
||||
|
||||
[l_vonneumann]:https://fr.wikipedia.org/wiki/Architecture_de_von_Neumann
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue