 |
|
SUBB A,<Operand>
Subtrahieren (mit Berücksichtigung des Übertragsbit (CY)).
|
SUBB A,Rr |
|
Rr = Inhalt eines der Register R0 bis R7 |
SUBB A,direct |
|
direct = Adresse im unteren RAM oder SFR |
SUBB A,@Ri |
|
@Ri = 8 Bit Adresse in R0 oder R1 |
SUBB A,#data |
|
#data = unmittelbare 8 Bit Konstante |
|
A = A - CY - Operand
SUBB subtrahiert den angegeben Operanden sowie das Übertragsbit vom Inhalt des Akkumulators (A), wo auch das Ergebnis abgelegt wird.
CY = 1 , wenn Ergebnis < 0 CY = 0 , wenn größergleich Null
Das Übertragsbit ("Borgebit") wird gesetzt, wenn eine "geborgte" Eins für Bit 7 erforderlich ist, andernfalls wird CY gelöscht. Bei der Subtraktion vorzeichenbehafteter, ganzer Zahlen zeigt OV an, dass eine negative Zahl durch Subtraktion eines negativen Operanden von einem positiven Operanden erzeugt wurde oder die durch Subtraktion einer positiven Zahl von einer negativen entstanden ist.
AC = 1
Das Hilfsübertragsbit (AC) wird gesetzt, wenn ein Eins für Bit 3 geborgt werden muss, andernfalls wird AC gelöscht.
OV = 1
Das Überlaufbit (OV) wird gesetzt, wenn eine Eins für Bit 6 geborgt werden muss, aber nicht für Bit 7 oder wenn eine Eins für Bit 7 geborgt werden muss, aber nicht für Bit 6. Andernfalls wird OV gelöscht.
|
Der Akkumulator (A) enthalte C9H (11001001B) und Register R2 54H (01010100B). Das Übertgragsbit ist gesetzt (CY=1). Der Befehl
SUBB A,R2
ergibt 74H (01110100B) im Akkumulator. Das Übertragsbit ist gelöscht (CY=0), das Hilfsübertragsbit ist gelöscht (AC=0) und das Überlaufbit ist gesetzt (OV=1).
Man beachte, dass C9H - 54H = 75H ist. Der Unterschied zwischen diesem und dem obigen Ergebnis ergibt sich durch das Übertragsbit, dass vor der Operation gesetzt war. Vor einer Subtraktion sollte das Übertragsbit durch den Befehl CLR C ausdrücklich gelöscht werden. |
SUBB A,Rr
Subtrahiert den Inhalt des Registers r vom Inhalt des Akkumulator (A).
Rr = R0 .. R7 der gewählten Registerbank
Bytes: 1
Zyklen: 1
Befehlscodierung
|
SUBB A,direct
Subtrahiert den Inhalt der Adresse (direct) vom Akkumulator (A).
direct = Adresse im unteren RAM oder SFR
Bytes: 2
Zyklen: 1
Befehlscodierung
|
SUBB A,@Ri
Subtrahiert den Inhalt der Adresse, welche durch den Wert in Ri definiert ist, vom Akkumulator (A).
@Ri = 8 Bit Adresse in R0 oder R1
Bytes: 1
Zyklen: 1
Befehlscodierung
|
SUBB A,#data
Subtrahiert den Wert #data vom Akkumulator (A).
#data = unmittelbare 8 Bit Konstante
Bytes: 2
Zyklen: 1
Befehlscodierung
|
|





|
|
|
|
|
|
|