____________________________________________________________________________________________________________
Architecture des ordinateurs – TD No 3 2/3 A. Khouas
1816:0108 8B0E1100 MOV CX,[0011]
1816:010C 8B1E00FF MOV BX,[FF00]
1816:0110 01D9 ADD CX,BX
1816:0112 40 INC AX
1816:0113 FFC0 INC AX
1816:0115 CD20 INT 20
3.1. Expliquer le rôle de la commande u de debug.
3.2. Quelle est la taille de ce programme ?
3.3. Donner le format des instructions 1,3,4 et 7.
3.4. Donner l’opcode des instructions MOV, ADD, INC et INT, sachant que le format général
des instructions du 8086 est le suivant :
N° du bit dans l'octet
N° d'octet 7 6 5 4 3 2 1 0
1 opcode d w
2 mod reg r/m
3 [optionel : déplacement (Low), adresse ou donnée]
4 [optionel : déplacement (High), adresse ou donnée]
5 [optionel : donnée (Low)]
6 [optionel : donnée (High)]
Opcode : code opération de l’instruction.
d = 1 pour données trasférée de R/M ver REG et = 0 pour REG vers R/M.
w = 0 pour donnée sur 8 bits et =1 pour donnée sur 16 bits.
mod : mode d’interprétation du champ r/m (e.g. 11 pour registre registre).
reg : sélection des registres (e.g. 000=AX ou AL, 001=CX ou CL, 010=DX ou DL, ...)
r/m : mode d’adressage registre/mémoire
3.5. Quel est le nombre de cycles nécessaire pour l’exécution de ce programme ? Le tableau
ci-dessous donne le nombre de cycles pour certaines instructions du 8086.
Instruction Nombre de cycles
mov reg imm 4
mov reg mem 8
Add reg reg 3
inc reg 3
int 71
4. La machine virtuelle
Soit une machine virtuelle avec :
& Un bus d’adresse de 8 bits.
& Un registre d’instruction de 16 bits.
& Un registre général de 16 bits nommé A.
& Une mémoire organisé en cellules de 16 bits.
& Le format des instructions sur 16 bits est le suivant :
Opcode (8 bits) Opérande (8 bits)
15 14 ………9 8 7 6 … … … 1 0