Instructions de calcul binaire
Drapeaux
Exemple
00001
240
place le résultat dans R. Si le résultat est négatif, CY est activé et le complément
de 2 du résultat réel est placé dans R.
SBB(51) peut également être utilisé pour soustraire les données binaires por-
tant un signe. Avec les UC CQM1-CPU4j
gamme SR 25404 et SR 25405 indiquent si le résultat a dépassé les limites des
gammes haute et basse des données à 16 bits portant un signe.
ER:
Le canal DM indirectement adressé n'existe pas (le contenu du canal
*DM n'est pas en BCD ou la limite de la zone DM a été dépassée).
CY:
ON lorsque le résultat est négatif (Mi inférieur à Su plus CY).
EQ:
ON lorsque le résultat est égal à 0.
OF:
ON lorsque le résultat est supérieur à + 32 767 (7FFF)
(CQM1-CPU4j
UF:
ON lorsque le résultat est inférieur à – 32 768 (8000)
(CQM1-CPU4j
L'exemple suivant montre une soustraction à 4 chiffres. Lorsque IR 00001 est à
ON, le contenu de LR 20 et de CY est soustrait du contenu de IR 002 et le résul-
tat est écrit dans HR 21.
CY est placé à ON si le résultat est négatif. Si l'on utilise une donnée normale, un
résultat négatif (binaire avec signe) doit être converti en donnée normale en utili-
sant NEG(––). Reportez–vous au chapitre 5-19-17 2's COMPLEMENT –
NEG(––) pour de plus amples détails.
Dans l'exemple ci–dessous, le contenu de LR 20 (#7A03) et de CY est soustrait
de IR 002 (#F8C5). Depuis que le résultat est positif, CY est égal à 0.
Si le résultat était négatif, CY serait placé à 1. Pour les données normales (sans
signe), le résultat doit être converti en complément de 2.
–
–
Rem. : pour les calculs binaires avec signe, l'état des drapeaux UF et OF indique si le
résultat dépasse la gamme des données binaires avec signe :
– 32 768 (8000) à + 32 767 (7FFF) (CQM1-CPU4j
Mi – Su – CY
-E, les drapeaux de dépassement de
-E uniquement).
-E uniquement)
Adresse
00000
CLC(41)
00001
00002
SBB(51)
00003
002
LR20
HR 21
Mi: IR 002
F
8
C
5
Su: LR 20
7
A
0
3
CY = 0 (par CLC)
0
0
0
0
R: HR 21
CY = 0 puisque Mi
7
E
C
2
Chapitre 5-21
CY
R
Instruction
Opérande
LD
00001
OUT
TR
CLC(41)
SBB(51)
LR
HR
Su
-E uniquement).
1
002
20
21