asembler3

asembler3



Przesuwa w lewo bity pierwszego operandu o podaną liczbę bitów w operandzie drugim. Starszy przesunięty bit zostaje zachowany w fladze CF (ang. Carry Flag), a młodsze bity są wypełniane zerami. Sposób przesuwania się bitów dla instrukcji SAL/SHL w 32-bitowym rejestrze prezentuje rysunek 2.1.

Dla przykładu przesuniemy wartość w EAX o 1 bit w lewo:

mov eax, 1 ; do EAXdajemy wartość 1

shl eax, 1 ; EAXbędzie równy 2 (10 binarnie),

; gdyż jedynka się przemieściła,

; a na jej miejscu mamy zero,

; co daje wartość lOb (2h).

Najmłodszy bit

EAX (32 bity)

jest zerowany

Carry Flag 31

15

7 0

(znacznik Starsze bity

Młodsze bity

przeniesienia)

Rysunek 2.1. Rysunek prezentujący, jak przesuwają się bity dla instrukcji SAL/SHL

SAR/SHR (przesunięcie arytmetyczne/logiczne w prawo)

Składnia:

SAR operandl, operand2 SHR operandl, operand2

Instrukq'a SAR przesuwa w prawo bity pierwszego operandu o podaną liczbę bitów w operandzie drugim. Najmłodszy przesunięty bit zostaje zachowany w fladze CF, a najstarszy bit zostaje zachowany. Instrukcja SHR działa podobnie, różni się tylko tym, że zeruje najstarszy bit (nazywany również bitem znaku). Sposób przesuwania się bitów dla instrukcji SAR został zaprezentowany na rysunku 2.2, a dla instrukcji SHR — na rysunku 2.3.

Dla przykładu przesuniemy wartość w EAX o 1 bit w prawo:

mov eax, 1 ; do EAX idzie wartość 1 shr eax, 1 ; EAX będzie równy 0,

; flaga CF zostanie ustawiona.

EAX (32 brty)

31

Starsze bity

7    O

Młodsze bity

Carry Flag (znacznik przeniesienia)

Rysunek 2.2. Rysunek prezentujący, jak przesuwają się bity dla instrukcji SAR

Najstarszy b-t jest zerowany

U fflBSHMiffliM

31

Starsze bity


EAX (32 bity)


15    7    0

Młodsze bity


-'■

Carry Flag (znacznik przeniesienia)


Rysunek 2.3. Rysunek prezentujący, jak przesuwają się bity dla instrukcji SHR

ROl/RCL (rotacja w lewo bez użycia flagi CF/z użyciem flagi CF)

Składnia:

HOL operandl, operandż HCL operandl, operand2

1’it'rwsza instrukcja przesuwa logicznie w lewo pierwszy operand o liczbę bitów podaną w operandzie drugim. Nie używa flagi CF, więc najmłodszy bit przyjmuje wartość najstarszego bitu. Druga instrukcja przeprowadza tę samą czynność, ale przy użyciu flagi CF. Najmłodszy bit przyjmuje wartość, która była w CF, a znacznik CF przyjmuje wartość najstarszego bitu. Sposób obracania się bitów dla instrukcji ROL w 32-hllowym rejestrze został przedstawiony na rysunku 2.4, a dla instrukcji HCL — na rysunku 2.5.

EAX (32 bity)

31

15

7 0

Starsze bity

Młodsze bity

4®

Carry Flag

(znacznik przeniesienia)

Rysunek 2.4. Rysunek prezentujący, jak obracają się bity dla instrukcji ROL


Wyszukiwarka

Podobne podstrony:
240 TIF // Pobiera liczbę bitów przesunięcia w lewo. if(lcBits = cbitShift % cbitDWORD){ // Dla bitó
240 TIF // Pobiera liczbę bitów przesunięcia w lewo. if(lcBits = cbitShift % cbitDWORD){ // Dla bitó
240 TIF // Pobiera liczbę bitów przesunięcia w lewo. if(lcBits = cbitShift % cbitDWORD){ // Dla bitó
// Pobiera liczbę bitów przesunięcia w lewo. if(lcBits = cbitShift % cbitDWORD){ // Dla bitów nietwo
200 ms = dwa początkowe fonemy angielski (odmiana amerykańska): 20 000 wyrazów pierwszy fonem zawęża
Poradnia Psychologiczno-Pedagogiczna nr 5 w Łodzi szachownicy, tak, aby pokazać podaną liczbę. Uczes
Ryc. 54. Jeżeli chcemy wyko-nać samochodem obrót zwany „Aaltonenem” w lewo, tQ pierwszy ruch kierown
23666 tbiu12 PT76 średnim czołgiem T-34 i ciężkim KW. Pierwszą niewielką jeszcze liczbę tych w
53 (139) 7. Rachunek prawdopodobieństwa W tej tabelce w pierwszym wierszu mamy liczbę oczek, jaka mo
LICZBY PIERWSZE > Liczbo pierwszo nazywamy taką liczbę naturalną, która ma tylko dwa różne dzieln
DSC65 Dzieci chore na odrę. Lewo góra — pierwszy dzień wysypki Prawo aora — wyrypie a cr.si ot c cz
asembler4 EAX (32 bity) 31 15 WWWMKBiBISIBBk-i 7 0 Starsze bity -- Młodsze bity Carry
asembler5 EAX(32 bity) 31 Starsze bity 15 7 0 Młodsze bity ECX (32 bity) 31 9 Starsze
wojna! Agnieszka ma tak jak na rysunku pierwszym a niektórzy tak     jak na rysunku d

więcej podobnych podstron