Przesunięcie arytmetyczne (bajtu lub słowa) w prawo - SAR



Rozkaz SAR dokonuje przesunięcia logicznego lewego argumentu w prawo o liczbę bitów, określoną prawym argumentem. Gdy dokonujemy przesunięcia o 1 bit wówczas liczba 1 jest prawym argumentem, gdy dokonujemy przesunięcia o liczba bitów większą niż 1, prawym argumentem jest rejestr CL, którego uprzednio należ załadować liczbą, określającą o ile bitów należy przesunąć lewy argument. W czasie przesuwania najmniej znaczące bity argumentu są wprowadzane kolejno w miejsc znacznika CF, natomiast najbardziej znaczący bit nie zmienia wartości; tracona jest poprzednia zawartość znacznika CF. Podczas przesuwania o 1 bit, znacznik OF jest zerowany natomiast najbardziej znaczący bit nie zmienia wartości; tracona jest poprzednia zawartość znacznika CF. Podczas przesuwania o 1 bit, znacznik OF jest zerowany.

 


 

Przykłady:

...
SAR AH,1
SAR ZMIENNA,1
...
SAR SI,CL
SAR AX,CL
 
;przesunięcie arytmetyczne rejestru AH w prawo o 1 bit
;przesunięcie arytmetyczne komórki pamięci o nazwie ZMIENNA w prawo o 1 bit

;przesuniecie arytmetyczne rejestru SI w prawo o CL bitów, CL=10
;przesunięcie arytmetyczne rejestru AX w prawo o CL bitów, CL=10

cofnij