Конспект лекций Системное программирование (семестр 2) Возле названия каждой лекции написано число пар, в течение которых она будет читаться (+ ср обозначает

Вид материалаКонспект
Схема команды
Состояние флагов после выполнения команды
См. также
Схема команды
См. также
Схема команды
См. также
Подобный материал:
1   ...   37   38   39   40   41   42   43   44   ...   57

SHRD


(SHift Right Double word)

Сдвиг двойного слова вправо

 

Схема команды: 

shrd приемник,источник,количество_сдвигов 

Назначение: логический сдвиг двойного слова вправо.

Синтаксис

Алгоритм работы:
  • сдвинуть операнд приемник вправо на количество битов, определяемое операндом количество_сдвигов;
  • одновременно сдвинуть операнд источник вправо на количество битов, определяемое операндом количество_сдвигов. Важно заметить, что операнд источник только обеспечивает вдвигаемые в операнд приемник биты, сам он при этом не изменяется;
  • выдвигаемые вправо во время сдвига из операнда источник биты вдвигаются в операнд приемник с его левого конца.

Состояние флагов после выполнения команды:

11

07

06

04

02

00

OF

SF

ZF

AF

PF

CF

?

r

r

?



r

Применение:

Команда shrd используется для манипуляции битными строками длиной до 64 бит. Эту команду удобно использовать для быстрой вставки (или извлечения) битной строки в большую битную строку, при этом, что очень важно, не разрушается контекст (битное окружение) этих подстрок.

.386

;разделить операнд размером 64 бит на степень 2

op_l    dd      ...     ;младшая часть операнда

op_h    dd      ...     ;старшая часть операнда

...

        mov     eax,op_h

        shrd    op_l,eax,4      ;разделить операнд на 4

;так как старшая часть операнда реально еще не сдвинулась,

;то нужно привести ее в соответствие с результатом

        shr     op_h,4

        

См. также: урок 9 и команды rcr, rcl, ror, rol, sar, sal, shr, shld

STC


(Set Carry Flag)

Установка флага переноса

 

Схема команды: 

stc 

Назначение: установка флага переноса cf в 1.

Синтаксис

Алгоритм работы:

установить флаг cf в единицу.

Состояние флагов после выполнения команды:

00

CF

1

Применение:

Данная команда используется для установки флага cf в единицу. Такая необходимость может возникнуть при работе с командами сдвига, арифметическими командами или действиями по индикации ошибок в программах.

...

        stc             ;cf=1

...

        

См. также: уроки 2, 8, 9 и команды cmc, clc

STD


(SeT Direction Flag)

Установка флага направления

 

Схема команды: 

std 

Назначение: установка флага направления df в 1.

Синтаксис

Алгоритм работы:

установить флаг df в единицу.

Состояние флагов после выполнения команды:

10

DF

1

Применение:

Данная команда используется для установки флага df в единицу. Такая необходимость может возникнуть при работе с цепочечными командами. Единичное состояние флага df вынуждает микропроцессор производить декремент регистров si и di при выполнении цепочечных операций.

...

        std             ;df=1

;смотрите материал урока 11

        

См. также: уроки 2, 11 и команду cld