Opérations binaires
Exemple 1:
données normales
TR 1
00001
25504
25504
Exemple 2:
données binaires signées
00000
L'exemple ci-dessous indique une soustraction à 4 digits avec CY qui sort soit
#0000, soit #0001 sur R+1 pour ne pas perdre la retenue.
Dans le cas suivant, le contenu LR 20 (#7A03) et CY est ôté de IR 001 (#F8C5).
Le résultat est mémorisé sur HR 21, le contenu HR 22 (#0000) indique que le
résultat est positif.
Si le résultat est négatif, on sélectionne CY, #0001 sort sur HR 22 et le résultat
est converti en complément à 2.
R+1: HR 22
0
0
Rem.: On ignore l'état des drapeaux UF et OF car ils sont importants pour la seule
soustraction des données binaires signées.
Dans l'exemple suivant, SBB(51) ôte une valeur binaire signée à 16 bits d'une
autre valeur égale. (Le complément à 2 exprime les valeurs négatives).
Les valeurs binaires signées à 16 bits figurent dans la gamme –32768 (8000) à
+32767 (7FFF). Le drapeau de dépassement OF: SR 25404 passe sur ON si le
résultat dépasse +32767 (7FFF), le drapeau de dépassement négatif UF: SR
25405 passe sur ON si le résultat est inférieur à –32768 (8000).
Adresse
00000
CLC(41)
00001
00002
SBB(51)
00003
001
LR20
HR 21
= R
00004
MOV(21)
00005
#0000
HR 22
= R+1
00006
MOV(21)
00007
#0001
00008
HR 22
= R+1
NEG(––)
HR21
00009
HR 21
Mi: IR 001
F
8
C
5
–
Su: LR 20
7
A
0
3
–
0
0
0
0
R: HR 21
0
0
7
E
C
2
Adresse
CLC(41)
00000
00001
SBB(51)
00002
LR 20
DM 0010
DM 0020
Chapitre 5-20
Instruction
Opérande
LD
00001
OUT
TR
CLC(41)
SBB(51)
LR
HR
AND NOT
25504
MOV(21)
#
HR
LD
TR
AND
25504
MOV(21)
#
HR
NEG(––)
HR
HR
CY = 0
(à partir de CLC(41))
Instruction
Opérande
LD
00000
CLC(41)
SBB(51)
LR
DM
DM
1
001
20
21
0000
22
1
0001
22
21
21
20
0010
0020
251