98 5. Rozkazy mikroprocesorów 8086/8088
Pojęcie rozpakowanego i normalnego kodu BCD wyjaśniono w p. 2.4.
Rozkazy logiczne, działające na bitach
NOT -negacja logiczna bajtu lub słowa,
AND -iloczyn logiczny bajtów lub słów, j
OR -suma logiczna bajtów lub słów, 'm
XOR -nierównoważność bajtów lub słów, ^1
TEST -testowanie (porównanie logiczne) bajtów lub słów. -
Rozkazy przesunięć
SHL - przesunięcie logicznie w lewo bajtu lub słowa, ,
SAL -przesunięcie arytmetycznie w lewo bajtu lub słowa, j
SHR -przesunięcie logicznie w prawo bajtu lub słowa, \
SAR -przesunięcie arytmetycznie w prawo bajtu lub słowa, ]
ROL -przesunięcie cyklicznie w lewo bajtu lub słowa, •
ROR -przesunięcie cyklicznie w prawo bajtu lub słowa, J
RCL -przesunięcie cyklicznie z przeniesieniem w lewo bajtu lub słowa, 1
RCR -przesunięcie cyklicznie z przeniesieniem w lewo bajtu lub słowa. .J
53.1. Dodawanie
ADD (ang. add byte or word) /fl
dodanie bajtów lub słów bez przeniesienia _
Operacja: lewy argument lewy_argument + prawyargument 3
Znaczniki: OF DFIF TF SF ZF AF PF CF 1
Rozkaz realizuje dodawanie arytmetyczne dwóch argumentów, które mogą być bajtami lub słowami i umieszcza wynik w miejscu lewego argumentu. Oba argumenty powinny być liczbami dwójkowymi ze znakiem lub bez znaku (zob. AAA i DAA). Kombinacje argumentów przedstawiono w tabl. 5.8. 3
Tablica 5.8. Dopuszczalne kombinacje argumentów
Lewyargument |
Rejestr |
Prawyargument Rejestr segmentowy |
Pamięć |
Wartość 1 bezpośrednia |
Rejestr |
tak |
nic |
tak |
tak |
Rejestr segmentowy |
nie |
nie |
nie |
nie |
Pamięć |
tak |
nie |
nie |
tak |
Możliwe opcje
Dodanie bez przeniesienia zawartości rejestru do rejestru 0000 OOlw 11 reg reg
Liczba taktów - 3.
ADD DI, CX ADD CL, CH ADD BP, AX ADD BH, AL
Dodanie bez przeniesienia zawartości pamięci do rejestni
addrhigh j
001W
mod reg r/m addrlow
Liczba taktów - 9 + takty do obliczenia adresu efektywnego.
ADD AH, ZMIENNA_BAJT[SI] ADD SI, ZMIENNA 2 ADD BX, ZMIENNA[BX +5]
Dodanie bez przeniesienia zawartości rejestni do pamięci 0000 OOOw mod reg r/m addr low addr high
Liczba taktów -16 + takty do obliczenia adresu efektywnego.
ADD ZMIENNA_BAJT[SI], AH ADD ZMIENNA 2, SI ADD ZMIENNA[BX + 5], BX
Dodanie bez przeniesienia wartości bezpośredniej do akumulatora
0000 OlOw datalow datahigh | |
Liczba taktów - 4. | |
Przykłady | |
ADD AX, 45670D ADD AX, STAŁA 2 ADD AL, 0D2H ADD AL, 1 | |
Dodanie bez przeniesienia wartości bezpośredniej do rejestru | |
[1000 OOsw 11000 reg data low |
datahigh |
Liczba taktów - 4. Wykłady
ADD AH, -8 ADD CX, STALA 2