134
5. Rozkazy mikroprocesorów 8086/8088
Przykłady
MOVCL, 11
MO V CL, 6
RCL/ang. rotate through carry left byte or word ) przesunięcie cykliczne w lewo bajtu lub słowa z przeniesieniem
Operacja: zobacz niżej
Znaczniki: OF DF IF TF SF ZF AF PF CF ' \
Rozkaz realizuje przesunięcie cykliczne w lewo przez znacznik przeniesienia CF lewego argumentu o liczbę bitów określoną prawym argumentem (rys. 5.2). Jeżeli przesunięcie jest o 1 bit, to jedynka jest wprost prawym argumentem. Przy przesunięciu o większą liczbę bitów, prawym argumentem jest rejestr CL, który wcześniej należy załadować liczbą określającą o ile bitów należy przesunąć lewy argument. W czasie przesuwania najbardziej znaczący bit argumentu jest wprowadzany do znacznika CF, pozostałe bity argumentu są przesuwane o 1 bit w lewo, a poprzedni stan znacznika CF (zapamiętany w pomocniczym przerzutniku) jest przepisywany na miejsce najmniej znaczącego bitu argumentu. Tak więc bity argumentu wraz ze znacznikiem CF krążą w kółko. Jeżeli przy przesuwaniu o 1 bit w lewo nie zmieni się zawartość bitu znaku, to znacznik OF jest zerowany. W przeciwnym wypadku znacznik OF przyjmuje wartość 1. Możliwe opcje
Przesunięcie cykliczne w lewo z przeniesieniem o 1 bit
Operacja: {w = 0 =*> n: = 7 else n: = 15}; ncxt CFoargument < n:0 > <-argument < n:0 > oCF;
next (argumcnt<n> *CF =» OF*-l else OF<-0)
Argumentem jest rejestr
1101 OOOw 11010 reg
Przykłady
RCL AL, 1
RCL DI, 1
Argument jest w pamięci
5.3. Rozkazy operacji arytmetycznych i logicznych
powered by . 135 _
Ml SI Ol
1101 OOOw modOlOr/m addrlow addrhigh
Liczba taktów -15 + takty do obliczenia adresu efektywnego.
Przykłady
RCL ZMIENNA, 1 RCL BAJT[BX], 1 ROL ZMIENNAfSI], 1 ROL BYTE PTR [DI], 1
Przesunięcie cykliczne w lewo z przeniesieniem o więcej niż 1 bit
Operacja: {w = 0=>n: = 7 else n: = 15 }; next CL * 0 =>
=>CFoargument < n:0 > ^-argument < n:0 > oCF; next CL«-CD-1; next IP«-IP-d) {d - długość rozkazu w bajtach (2/4)}
Argumentem jest rejestr 1101 OOlw 11010 reg Liczba taktów -8 + 4 takty na każdy bit.
Przykłady
MOV CL, 10 RCL DI, CL MOV CL, 3
RCL BH, CL +
Argument jest w pamięci
Liczba taktów - 20 + takty do obliczenia adresu efektywnego + 4 takty na każdy bit.
Przykłady
MOV CL, 2
RCL ZMIENNA[SI], CL RCL BAJT, CL MOV CL, 6 RCL ZMIENNA, CL
RCL WORD PTR [BP], CL __+
RCR (ang. rotate through carry riglit byle ot word )
przesunięcie cykliczne w prawo bajtu lub słowa z przeniesieni _— —--
Operacja: zobacz niżej
Znaczniki: OF DF IF TF SF ZF AF PF CF
X X