106
5. Rozkazy1 mikroprocesorów 8086/8088
SBB (ang. subtract byle or word with borrow ) odejmowanie bajtu lub słowa z pożyczką
Operacja: lewy argument lewyargument - prawy argument - CF Znaczniki: OF DFIF TF SF ZF AF PF CF j
X - - - X X X X X ]
Rozkaz realizuje odejmowanie arytmetyczne dwóch argumentów (prawego od lewego), które mogą być bajtami lub słowami. Jeżeli przed wykonaniem rozkazu znacznik CF = 1, to dodatkowo od otrzymanej różnicy zostaje odjęte 1. Wynik zostaje umieszczony w miejscu lewego argumentu. Oba argumenty powinny być liczbami dwójkowymi ze znakiem lub bez znaku (zob. AAS i DAS). Dopuszczalne kombinacje argumentów przedstawiono w tabl. 5.8. Możliwe opcje
Odjęcie z pożyczką zawartości rejestru od rejestru
0001 lOlw
11 reg reg
Liczba taktów - 3.
Przykłady
SBB AX, DI SBB DH, DL SBB BP, DX SBB BH, AL
Odjęcie z pożyczką zawartości pamięci od rejestru
] 0001 lOlw mod reg r/m addrjow |
addr high |
Liczba taktów - 9 + takty do obliczenia adresu efektywnego. | |
Przykłady SBB AH, ZMIENNA BAJT SBB DI, ZMIENNAfSI + 3] SBB BP, ZMIENNA_SLOWO[BP +1] | |
Odjęcie z pożyczką zawartości rejestru od pamięci | |
0001 lOOw mod reg r/m addr jow |
addr high |
Liczba taktów - 16 + takty do obliczenia adresu efektywnego. Przykłady
SBB ZMIENNA_SLOWO[DI), CX
SBB ZMIENNA 2, SI
SBB ZMIENNA[BP-ł-6], AX 5.3. Rozkazy operacji arytmetycznych i logicznych
powered by
Mi ol
Odjęcie z pożyczką wartości bezpośredniej od akumulatora 0001 HOw dala Iow dalajiigh Liczba taktów - 4.
Przykłady
SBB AL, 10H SBB AX, STAŁA_EQU SBB AX, 65000 SBB AL, 1234H
Odjęcie z pożyczką wartości bezpośredniej od rejestm
1000 OOsw
11011 reg data Iow
datahigh
Liczba taktów - 4.
Przykłady
SBB CH, 2
SBB AL, STAŁA EQU SBB Dl, -12H SBB BL, 01010101B
Odjęcie z pożyczką wartości bezpośredniej od pamięci
jlOOOOlsw mod 011 r/m addrjow addrhigh data Iow dalajiigh Liczba taktów -17 + takty do obliczenia adresu efektywnego.
Przykłady
SBB ZMIENNA[DI +4), 24
SBB ZMIENNA, STAŁA_EQU ♦
DEC (ang. decrement byte or word by 1)
odjęcie jedynki od bajtu lub słowa _ _____
Operacja: argument argument - 1 Znaczniki: OF DFIF TF SF ZF AF PF CF x---xxxx-
Rozkaz odejmuje jedynkę od argumentu, który może być bajtem lub słowem. Argument jest traktowany jak liczba bez znaku (zob. AAS i DAS). Możliwe opcje
Odjęcie jedynki od 16-bitowego rejestm 0100 1 reg
Liczba taktów - 2.