Архитектура ЭВМ и систем. Коваль А.С - 57 стр.

UptoLike

Составители: 

57
Установка регистра FLAGS в соответ-
ствии с результатом логического ум-
ножения непосредственного операнда и
операнда в аккумуляторе.
1010100w нет
Логическое сложение операнда из па-
мяти/регистра и операнда из регистра.
000010dw mod reg r/m
Логическое сложение непосредствен-
ного операнда и операнда из памя-
ти/регистра.
1000000w mod 001 r/m
OR
Логическое сложение непосредствен-
ного операнда и операнда в аккумуля-
торе.
0000110w нет
Операция "исключающее ИЛИ" над
операндами из памяти/регистра и из ре-
гистра.
001100dw mod reg r/m
Операция "исключающее ИЛИ" над
непосредственным операндом и опе-
рандом из памяти/регистра.
1000000w mod 110 r/m
XOR
Операция "исключающее ИЛИ" над
непосредственным операндом и опе-
рандом в аккумуляторе.
0011010w нет
Команды сдвига
предназначены для выполнения логических, арифметических и цикли-
ческих сдвигов. Поле операнда имеет формат mem/reg, count. Здесь
mem/reg адресует регистр или ячейку памяти, а count (счет или счетчик)
определяет число сдвигов. Число сдвигов может быть указано как кон-
станта 1 (статический сдвиг) или как регистр CL. В первом случае осуще-
ствляется сдвиг на один байт,
а во втором - число сдвигов определяется
содержимым регистра CL, которое должно быть беззнаковым целым дво-
ичным числом. Таким образом, число сдвигов можно задать переменной,
вычисляемой во время выполнения программы (так называемый динами-
ческий сдвиг). При выполнении команд сдвигов флаги изменяются сле-
дующим образом:
состояние флага AF всегда не определено;
флаг CF всегда содержит значение последнего выдвинутого бита;
в однобитных сдвигах флаг OF=0, если операция изменила значение
старшего (знакового) бита операнда; при сдвиге на несколько бит со-
стояние флага OF не определено;
циклические сдвиги влияют только на флаги OF и CF;
в арифметических и логических сдвигах флаги SF, ZF и PF изменяются
в соответствии с полученным результатом.
                                  57
     Установка регистра FLAGS в соответ-
     ствии с результатом логического ум-
                                            1010100w    нет
     ножения непосредственного операнда и
     операнда в аккумуляторе.
     Логическое сложение операнда из па-
                                            000010dw mod reg r/m
     мяти/регистра и операнда из регистра.
     Логическое сложение непосредствен-
                                            1000000w mod 001 r/m
 OR ного операнда и операнда из памя-
     ти/регистра.
     Логическое сложение непосредствен-
     ного операнда и операнда в аккумуля- 0000110w      нет
     торе.
     Операция "исключающее ИЛИ" над
     операндами из памяти/регистра и из ре- 001100dw mod reg r/m
     гистра.
     Операция "исключающее ИЛИ" над
 XOR непосредственным операндом и опе-      1000000w mod 110 r/m
     рандом из памяти/регистра.
     Операция "исключающее ИЛИ" над
     непосредственным операндом и опе-      0011010w    нет
     рандом в аккумуляторе.

Команды сдвига
   предназначены для выполнения логических, арифметических и цикли-
ческих сдвигов. Поле операнда имеет формат mem/reg, count. Здесь
mem/reg адресует регистр или ячейку памяти, а count (счет или счетчик)
определяет число сдвигов. Число сдвигов может быть указано как кон-
станта 1 (статический сдвиг) или как регистр CL. В первом случае осуще-
ствляется сдвиг на один байт, а во втором - число сдвигов определяется
содержимым регистра CL, которое должно быть беззнаковым целым дво-
ичным числом. Таким образом, число сдвигов можно задать переменной,
вычисляемой во время выполнения программы (так называемый динами-
ческий сдвиг). При выполнении команд сдвигов флаги изменяются сле-
дующим образом:
• состояние флага AF всегда не определено;
• флаг CF всегда содержит значение последнего выдвинутого бита;
• в однобитных сдвигах флаг OF=0, если операция изменила значение
  старшего (знакового) бита операнда; при сдвиге на несколько бит со-
  стояние флага OF не определено;
• циклические сдвиги влияют только на флаги OF и CF;
• в арифметических и логических сдвигах флаги SF, ZF и PF изменяются
  в соответствии с полученным результатом.