Weitere Files findest du auf www.semestra.ch/files DIE FILES

publicité
Weitere Files findest du auf www.semestra.ch/files
DIE FILES DÜRFEN NUR FÜR DEN EIGENEN GEBRAUCH BENUTZT WERDEN.
DAS COPYRIGHT LIEGT BEIM JEWEILIGEN AUTOR.
Microprocesseur
I02
Classification des microprocesseurs
orienté accumulateur
•
orienté registres généraux
Le jeu d’instructions est lié
aux accumulateurs, par ex.
-
•
Le jeu d’instructions est
déclinable avec un registre
(la commande est indépendant
du registre), par ex.
-
•
µP : Indel
charge la valeur A5 dans
l’accu "a"
•
µP : 68HC11
pile (stack)
Microprocesseur 68HC11
Exemple du CCR: (condition code register)
LDAA
# val
S
X
H
I
-
-
-
-
bit no. 7 = 1  négatif
N
Z
-1 0 1
N=0
Z=1
V=0
N=0
Z=0
V=0
N=1
Z=0
V=0
-128 | 127
Classification des instructions 68HC11
Registre  mémoire :
Registre  registre :
Arithmétique :
Logic :
Shift & rotate :
ldaa, ldx
aba, adda
and, or, eor
asl, asr, lsa, lsr, lsl, rol, ror
-1-
V
C
-
flag non modifié
0
-
0
flag mit à 0
1
flag mit à 1
flag prend la valeur
correspondante de la
de la commande.
Microprocesseur
I02
Différance shift & rotate:
Shift:
avant:
après:
Jump:
Subroutines:
Interruption:
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
bra, beq, bnc, …
bsr, gsr, …
cli
Instruction est composé d’un opcode + un ou plusieurs opérande(s)
Mode d’adressage:
Le mode d’adressage est la manière dans la quelle le microprocesseur « appelle » une case mémoire.
La commande utilisée détermine le mode d’adressage. Certaine commandes peuvent être utilisé en
différents modes.
Le 68HC11 a 8 modes d’adressages:
1) inhérent (implicite)
•
•
uniquement l’opcode (il n’y a pas de opérande(s))
l’élément adressé est inclus dans l’opcode
ex. : ABA
add accu B à accu A  accu A
CLRA
clear A ( LDAA #0)
MUL
accu A * accu B  accu D
2) immédiat
•
transfert l’opérande dans le registre mentionné par
l’opérande
ex : LDAA #$07
charge la constante 07  accu A
3) directe (8 bit)/ étendu (16 bit)
•
opcode
$86
opérande
$07
accu
$07
opérande spécifie l’adresse d’une case mémoire
(l’élément adressé)
ex : LDAA $0FFF
accu
$0FFF
-2-
$A5
$A5
Microprocesseur
I02
4) indexé
l’élément adressé (la case mémoire) est pointé pas les
registres d’index X et Y.
ex :
LDAA 0,Y
•
registre d‘index utilisé
offset (+/-) exprimé sur 1 byte [-128…+127]
•
adresse de l’élément = valeur de registre d’index +
offset
$A4
$1000
$A5
accu
$A5
$A6
LDX #bidon
LDAA 0,X
est égal à
5) relatif
•
•
bidon est défini à #1000
LDAA bidon
modification (une addition/soustraction du PC)
valeur additionné / soustraite exprimé par 1 byte
[-127…+128]
ex : branch conditionnel, loop
•
le déplacement est calculé par l’assembleur
# : adressage immédiat
$ : chiffre en format hexadécimal
PC : program counter
Bloc diagramme du 68HC11
Page 239
Arithmetic Logical Unit
-
operatinos arithmétiques (add, mul, …)
opératinos logiques (And, Or, Not, Shift, …)
Instruciton Register
-
(ALU)
(IR)
contient l’opcode de l’instruction
Exemple :
-3-
Microprocesseur
I02
Load value $2000 into register X :
LDX #$2000
Store value from accu A into RAM at
address $2000 :
STAA $2000
X=$6000
PC=$2000
Address mode: indexed
1) fetch:
2) decode:
3) execute:
4)
get instruction
get operand
calculate address
fetch value from RAM to
put it into accu A
-4-
Microprocesseur
I02
Topologie d’un programme en assembleur
1
Étiquettes
(variables)
Interpréter comme
adresse
data et code
variables, opcode, operand, commentaires
2
opcode
3
operand
Code
Data
Chaque programme est divisé en 2 parties :
Le code est divisé en 4 colones :
Initialisation du PC
-
c’est la première opération que fait le CPU lors de la mise sous tension
ce processeur est propre à chaque CPU (lire le data sheet)
le CPU est tributaire (dépendant) du signal
L’initialisation du PC se fait par lectures des adresses FFFE & FFFF.
-5-
4
commentaires
Téléchargement