- •Атрибуты размеров операнда и адреса, а также формат команды в процессорах семейства х86
- •1. Атрибуты размеров операнда и адреса.
- •2. Формат и кодирование команды.
- •Микропроцессоров семейства x86
- •I. Команды пересылок данных
- •II. Команды обработки данных
- •2. Команды логических операций
- •3. Команды сдвиговых операций
- •Команды битовых операций
- •IV. Команды операций со стеком
- •V. Команды управления программой
- •VI. Команды управления процессором
- •VII. Команды, используемые в системном программном обеспечении.
3. Команды сдвиговых операций
КОП |
Команда |
Действие команды |
Комментарии |
||
Арифметический (логический) сдвиг влево |
|||||
D0 /4 |
SAL(SHL) r/m8,1 |
на 1 бит |
OF определен только при одно- байтных сдвигах; AF-не определен; SF,ZF,CF,PF-устанавливаются по результату. Число сдвигов по CL и imm8 в P- режиме могут за- даваться не более 32 шагов. |
||
D2 /4 |
SAL(SHL) r/m8,CL
|
на CL бит |
|||
C0 /4 ib |
SAL(SHL) r/m8,imm8
|
на imm8 бит |
|||
D1 /4 |
SAL(SHL) r/m16(32),1
|
на 1 бит |
|||
D3 /4 |
SAL(SHL) r/m16(32),CL
|
на CL бит |
|||
C1 /4 ib |
SAL(SHL) r/m 16(32),imm8
|
на imm8 бит |
|||
Арифметический сдвиг вправо |
|||||
D0 /7 |
SAR r/m8,1
|
на 1 бит |
OF определен только при одно- байтных сдвигах; AF-не определен; SF,ZF,CF,PF-устанавливаются по результату. Число сдвигов по CL и imm8 в P- режиме могут за- даваться не более 32 шагов. |
||
D2 /7 |
SAR r/m8,CL
|
на CL бит |
|||
C0 /7 ib |
SAR r/m8,imm8
|
на imm8 бит |
|||
D1 /7 |
SAR r/m16(32),1
|
на 1 бит |
|||
D3 /7 |
SAR r/m16(32),CL
|
на CL бит |
|||
C1 /7 ib |
SAR r/m16(32),imm8
|
|
|||
Логический сдвиг вправо |
|||||
D0 /5 |
SHR r/m8,1
|
|
|||
D2 /5 |
SHR r/m8,CL
|
на CL бит |
|||
C0 /5 ib |
SHR r/m8,imm8
|
на imm8 бит |
|||
D1 /5 |
SHR r/m16(32),1
|
на 1 бит |
|||
D3 /5 |
SHR r/m16(32),CL
|
|
|||
C1 /5 ib |
SHR r/m16(32),imm8
|
на imm8 бит |
|||
Двойной сдвиг влево |
|||||
0F A4 |
SHLD r/m16(32),r16(32), imm8
|
на imm8 бит |
Флаги OF и AF не определены. SF,ZF,PF,CF устанавливаются по результату. После окончания сдвигов содержи- мое регистра r16(32) восстанавливает- ся прежним. |
||
0F A5
|
SHLD r/m16(32),r16(32),CL |
на CL бит |
|||
Двойной сдвиг вправо |
|||||
0F AC
|
SHRD r/m16(32),r16(32), imm8 |
на imm8 бит |
Флаги OF и AF не определены. SF,ZF,PF,CF устанавливаются по результату. После окончания сдвигов содержи- мое регистра r16(32) восстанавливает- ся прежним. |
||
0FAD |
SHRD r/m16(32),r16(32), CL |
на CL бит |
|||
Циклический сдвиг влево |
|||||
D0 /0 |
ROL r/m8,1
|
на 1 бит |
Флаг OF опреде- лен только в одно байтных сдвигах. CF содержит зна- чение выдвинуто- го в него бита. SF,ZF,AF,PF не модифицируются
|
||
D2 /0 |
ROL r/m8,CL
|
на CL бит
|
|||
C0 /0 ib |
ROL r/m8,imm8
|
на imm8 бит |
|||
D1 /0 |
ROL r/m16(32),1
|
на 1 бит |
|||
D3 /0 |
ROL r/m16(32),CL
|
на CL бит
|
|||
C1 /0 ib
|
ROL r/m16(32),imm8 |
на imm8 бит
|
|||
Циклический сдвиг влево через перенос |
|||||
D0 /2 |
RCL r/m8,1
|
на 1 бит |
Флаг OF опреде- лен только в одно байтных сдвигах. CF содержит зна- чение выдвинуто- го в него бита. SF,ZF,AF,PF не модифицируются
|
||
D2 /2 |
RCL r/m8,CL
|
на CL бит |
|||
C0 /2 ib |
RCL r/m8,imm8
|
на imm8 бит |
Флаг OF опреде- лен только в одно байтных сдвигах. CF содержит зна- чение выдвинуто- го в него бита. SF,ZF,AF,PF не модифицируются
|
D1 /2 |
RCL r/m16(32),1
|
на 1 бит |
|
D3 /2 |
RCL r/m16(32),CL
|
на CL бит |
|
C1 /2 ib |
RCL r/m16(32),imm8
|
На imm8 бит |
|
Циклический сдвиг вправо |
|||
D0 /1 |
ROR r/m8,1
|
на 1 бит |
|
D2 /1 |
ROR r/m8,CL
|
на CL бит |
|
C0 /1 ib |
ROR r/m8,imm8
|
на imm8 бит |
|
D1 /1 |
ROR r/m16(32),1
|
на 1 бит |
|
D3 /1 |
ROR r/m16(32),CL
|
на CL бит |
|
C1 /1 ib |
ROR r/m16(32),imm8
|
На imm8 бит |
|
Циклический сдвиг вправо через перенос |
|||
D0 /3 |
RCR r/m8,1
|
на 1 бит |
Флаг OF опреде- лен только в одно битных сдвигах. CF-содержит зна- чение выдвинуто- го в него бита. SF,ZF,AF,PF не модифицируются |
D2 /3 |
RCR r/m8,CL
|
на CL бит |
|
C0 /3 ib |
RCR r/m8,imm8
|
на imm8 бит |
|
D1 /3 |
RCR r/m16(32),1
|
на 1 бит |
|
D3 /3 |
RCR r/m16(32),CL
|
на CL бит |
|
C1 /3 ib |
RCR r/m16(32),imm8
|
на imm8 бит |
|

на
1 бит
на
CL бит