Académique Documents
Professionnel Documents
Culture Documents
CM4 - OperatArithm
CM4 - OperatArithm
Addition:
ADD, ADDB
ADDC, ADDCB
Soustraction:
SUB,SUBB
SUBC,SUBCB
Multiplication:
MUL, MULU
Division:
DIV,DIVU
1
Les opérateurs d’addition
ADD, ADDB, ADDC, ADDCB
Syntaxe
mnémonique op1, op2
ADD et ADDB
op1 op1 + op2
ADDC et ADDCB
op1 op1 + op2 + C
2
ADD, ADDB modes
d’adressages et indicateurs
ADD Opérande1 Opé2 Indicateurs
E Z V C N
Rw Rw * * * * *
#valeur * * * * *
[Rw] * * * * *
mem * * * * *
mem Rw * * * * *
ADDB Rb Rb * * * * *
#valeur * * * * *
[Rw] * * * * *
mem * * * * *
mem Rb * * * * *
3
Exemples ADD, ADDB
MOV R0, #0X4000
R0=0x4000
E=0 Z=0 V=x C=x N=0
ADD R0, #1
R0=R0+1=0x4001
E=0 Z=0 V=0 C=0 N=0
ADD R0, R0
R0=R0+R0=0x8002
E=0 Z=0 V=1 C=0 N=1
ADDB RL0, #2
RL0=RL0+2=0x04
R0=0x8004
E=0 Z=0 V=0 C=0 N=0
4
ADDC, ADDCB modes
d’adressages et indicateurs
ADDC Destination Source Indicateurs
E Z V C N
Rw Rw * S * * *
#valeur * S * * *
[Rw] * S * * *
mem * S * * *
mem Rw * S * * *
ADDCB Rb Rb * S * * *
#valeur * S * * *
[Rw] * S * * *
mem * S * * *
mem Rb * S * * *
SUB et SUBB
op1 op1 -- op2
SUBC et SUBCB
op1 op1 -- op2 -- C
8
SUB, SUBB modes
d’adressages et indicateurs
SUB Destination Source Indicateurs
E Z V C N
Rw Rw * * * S *
#valeur * * * S *
[Rw] * * * S *
mem * * * S *
mem Rw * * * S *
SUBB Rb Rb * * * S *
#valeur * * * S *
[Rw] * * * S *
mem * * * S *
mem Rb * * * S *
S DW 5,7,1
T DW 12 T=T-S1-S2-S3
…
MOV R1, #S
R1=0x0020 par exemple
E=0 Z=0 V=x C=x N=0
MOV R0, T
R0=0x000C
E=0 Z=0 V=x C=x N=0
SUB R0, [R1]
R0=R0-0x0005=0x0007
E=0 Z=0 V=0 C=0 N=0
10
Exemples SUB, SUBB
suite
ADD R1, #2
R1=0020+2=0x0022
! ! ! ! ! E=0 Z=0 V=0 C=0 N=0
SUB R0, [R1]
R0=R0-0x0007=0000
E=0 Z=1 V=0 C=0 N=0
ADD R1, #2
R1=0022+2=0024
! ! ! ! ! E=0 Z=0 V=0 C=0 N=0
SUB R0, [R1]
R0=R0-0001=FFFF
E=0 Z=0 V=0 C=1 N=1
MOV T, R0
00000020 05 00 07 00 01 00 FF FF 11
SUBC, SUBCB modes
d’adressages et indicateurs
SUBC Destination Source Indicateurs
E Z V C N
Rw Rw * S * S *
#valeur * S * S *
[Rw] * S * S *
mem * S * S *
mem Rw * S * S *
SUBCB Rb Rb * * * S *
#valeur * * * S *
[Rw] * * * S *
mem * * * S *
mem Rb * * * S *
E Z V C N
Rw 0 * S 0 *
E Z V C N
Rw 0 * S 0 *
MOVB S, MDH
DIVU R0
MDL=007B / 60=0002
MDH= 007B mod 60=0003
E=0 Z=0 V=0 C=0 N=0
MOVB M, MDH
MOVB H, MDL
00000020 D8 1C 02 03 04
16
Exemples DIV, DIVU
suite
17
Les opérateurs de
multiplication
MUL, MULU
Syntaxe
mnémonique op1, op2
18
MUL, MULU modes
d’adressages et indicateurs
19
Exemples MUL, MULU
Temps DSW 1 ; en secondes
H DW 2 ; heure
M DW 3 ; minute
S DW 4 ; seconde
…
MOV R0, #60
R0=003C
E=0 Z=0 V=x C=x N=0
MOV R1, H
R1=0002
E=0 Z=0 V=x C=x N=0
MULU R0, R1
MD=003C x 0002
MD=0000 0078
20
E=0 Z=0 V=0 C=0 N=0
Exemples MUL, MULU
suite
MOV R1, MDL
R1=0078
E=0 Z=0 V=0 C=0 N=0
ADD R1, M
R1= 0078+3=007B
E=0 Z=0 V=0 C=0 N=0
MULU R0, R1
MD=003C x 007B
MD=0000 1CD4
E=0 Z=0 V=0 C=0 N=0
21
Exemples MUL, MULU
suite
22
Erreurs de syntaxe
La traduction en code machine ne peut pas
être faite ou n’est pas forcément conforme
Val DB 1,2,3
MOV RO, #0 ERREUR
Le registre RO
n’existe pas
Pas d’exécutable
23
Erreurs de syntaxe
La traduction en code machine ne peut pas
être faite ou n’est pas forcément conforme
ERREUR
1025 ne peut pas être codé sur
1 octet
Troncature du poids fort
04 01
24
Erreurs d’exécution
Wrd DW 3
Val DB -1, +1, +2
…
MOV R0, Val+1 ERREUR
25
Erreurs d’exécution
Val DW 0xFFFF
…
MOV R0, Val
MOV R1, [R0] ERREUR
La mémoire
d’adresse 0xFFFF
n’est pas
accessible
26