ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 12

                                                 429
     4STD5 - Установка флага направления
P       ЪДДДДДДДДДВДДДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДї
       іКод      іКоманда іЧисло   і Описание                   і
       іоперации і        ітактовыхі                            і
       і         і        іциклов  і                            і
       ГДДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
       іFD       іSTD     і 2      іУстановка флага направления,і
       і         і        і        ічто соответствует декрементуі
       і         і        і        і(E)SI или (E)DI             і
       АДДДДДДДДДБДДДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
M
     Работа команды
DF <- 1;
     Описание
    Команда STD устанавливает флаг направления DF, в
результате чего все последующие  строковые  операции
будут выполнять декремент индексных регистров, (E)SI
или (E)DI, с которыми они работают.
     Изменяемые флаги
    Устанавливается флаг DF.
     Исключения защищенного режима
    Отсутствуют
     Исключения режима реальных адресов
    Отсутствуют
     Исключения виртуального режима 8086
    Отсутствуют
430
     4STI5 - Установка флага прерывания
P       ЪДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДї
       іКод      іКоманда Число     Описание                    і
       іоперации і        тактовых                              і
       і         і        циклов                                і
       ГДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
       іF13      іSTI      5       Установка флага прерывания:  і
       і         і                 прерывания разрешены, начинаяі
       і         і                 с конца следующей команды    і
       АДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
M
     Работа команды
IF <- 1;
     Описание
    Команда STI устанавливает флаг IF.  После выпол-
нения следующей команды процессор может  реагировать
на  внешние  прерывания,  если эта следующая команда
оставляет флаг IF в состоянии,  разрешающем прерыва-
ния.  Если внешние прерывания запрещены,  и вы после
команды RET использовали команду  RET  (например,  в
конце подпрограммы),  то команда RET будет выполнена
до того,  как начнут распознаваться внешние прерыва-
ния.  Также, если внешние прерывания запрещены, а вы
использовали команду STI и за ней  команду  CLI,  то
внешние прерывания не будут распознаваться, посколь-
ку команда CLI очищает флаг IF во время  своего  вы-
полнения.
     Изменяемые флаги
    Устанавливается флаг IF.
     Исключения защищенного режима
    #GP, если  текущий  уровень  привилегированности
больше (имеет меньшую привилегированность), чем уро-
                                                 431
вень привилегированности ввода/вывода (IOPL).
     Исключения режима  реальных адресов
    Отсутствуют
     Исключения  виртуального режима 8086
    Отсутствуют
     4STOS/STOSB/STOSW/STOSD5 - Сохранение строковых
                              данных
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    іAA       іSTOS m8    і     5   іСохранение AL в байте       
   і
    і         і           і         іES:[(E)DI], обновление (E)DI
   і
    іAB       іSTOS m16   і     5   іСохранение AX в слове       
   і
    і         і           і         іES:[(E)DI], обновление (E)DI
   і
    іAB       іSTOS m32   і     5   іСохранение EAX в двойном сло
ве і
    і         і           і         іES:[(E)DI], обновление (E)DI
   і
    іAA       іSTOSB      і     5   іСохранение AL в байте       
   і
    і         і           і         іES:[(E)DI], обновление (E)DI
   і
    іAB       іSTOSW      і     5   іСохранение AX в слове       
   і
    і         і           і         іES:[(E)DI], обновление (E)DI
   і
    іAB       іSTOD       і     5   іСохранение EAX в двойном сло
ве і
    і         і           і         іES:[(E)DI], обновление (E)DI
   і
    АДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
     Работа команды
IF AddressSize = 16
THEN использование ES:DI в качестве DestReg
ELSE P(* AddressSize = 32 *)
 использование  ES:EDI в качестве
                          DestReg;
432
FI;
IF байтовый тип команды
THEN
  (ES:DestReg) <- AL;
  IF DF = 0
  THEN DestReg <- DestReg + 1;
  ELSE DestReg <- DestReg - 1;
  FI;
ELSE IF OperandSize = 16
  THEN
    (ES:DestReg) <- AX;
    IF DF = 0
    THEN DestReg <- DestReg + 2;
    ELSE DestReg <- DestReg - 2;
    FI;
  ELSE P(* OperandSize = 32 *)M
    (ES:DestReg) <- EAX;
    IF DF = 0
    THEN DestReg <- DestReg + 4;
    ELSE DestReg <- DestReg - 4;
    FI;
  FI;
FI;
     Описание
    Команда STOS пересылает содержимое регистра  AL,
AX или EAX в байт или слово памяти, заданное регист-
ром назначения относительно сегмента  ES.  Регистром
назначения  является регистр DI для атрибута размера
адреса 16 битов, или EDI для атрибута размера адреса
32 бита.
    Операнд назначения должен  адресоваться  из  ре-
гистра ES; переопределение сегмента не допускается.
    Адрес назначения определяется содержимым регист-
ра назначения,  а не явно заданным операндом команды
STOS. Этот операнд используется только для удостове-
рения  адресуемости  сегмента  ES и определения типа
данных.  Перед выполнением команды STOS следует заг-
рузить  в регистр DI или EDI правильное значение ин-
                                                 433
декса.
    После того,  как пересылка выполнена, регистр DI
автоматически обновляется. Если флаг направления ра-
вен 0 (была выполнена команда CLD),  происходит инк-
ремент регистра назначения;  если  флаг  направления
равен  1  (была  выполнена команда STD),  происходит
декремент регистра назначения. При сохранении байтов
инкремент или декремент равен 1; при сохранении слов
инкремент или  декремент  равен  2;  при  сохранении
двойных слов инкремент или декремент равен 4.
    Команды STOSB, STOSW и STOSD являются синонимами
команды STOS, работающими с байтом, словом и двойным
словом,  соответственно, не требующими операндов. Их
проще  программировать,  но они не обеспечивают про-
верки типа или сегмента.
    Команде STOS  может  предшествовать префикс REPE
или REPNE для заполнения блока из CX или ECX байтов,
слов  или двойных слов.  Подробности см.  в описании
команды REP.
     Изменяемые флаги
    Отсутствуют
     Исключения защищенного режима
    #GP(0), если назначением является  сегмент,  не-
доступный для записи;
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в  случае недопустимого адреса в сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
434
     Исключения режима реальных адресов
    Прерывание 13,  если  какая-либо  часть операнда
лежит вне пространства исполнительных адресов  от  0
до 0FFFFH.
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #PF (код сбоя) для страничных сбоев.
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
     4STR5 - Сохранение регистра задачи
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    і0F 00 /1 іSTR r/m16  і  2/3    іСохранение регистра задачи в
   і
    і         і           і         іслове, заданным исполнительн
ым і
    і         і           і         іадресом                     
   і
    АДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
     Работа команды
r/m <- регистр задачи;
     Описание
    Содержимое регистра    задачи    копируется    в
двух-байтовый регистр  или  адрес  памяти,  заданный
операндом с исполнительным адресом.
    Команда STR  используется  только   операционным
программным обеспечением. Прикладные программы ее не
используют.
                                                 435
     Изменяемые флаги
    Отсутствуют
     Исключения защищенного режима
    #GP(0), если назначением является  сегмент,  не-
доступный для записи;
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в  случае недопустимого адреса в сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 6;  команда STR в режиме реальных ад-
ресов не распознается.
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов.
     Примечания
    Атрибут размера операнда на действие этой коман-
ды не влияет.
436
     4SUB5 - Целочисленное вычитание
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДї
    іКод      іКоманда    іЧисло    і Описание                  і
    іоперации і           ітактовых і                           і
    і         і           іциклов   і                           і
    ГДДДДДДДДДЕДДДДДДДДДДДБДДДВДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
    і2C ib    іSUB AL,imm8    і1    іВычитание непосредственногоі
    і         і               і     ібайта из AL                і
    і2D iw    іSUB AX,imm16   і1    іВычитание непосредственногоі
    і         і               і     іслова из AX                і
    і2D id    іSUB EAX,imm32  і1    іВычитание непосредственногоі
    і         і               і     ідвойного слова из EAX      і
    і80 /5 ib іSUB r/m8,imm8  і1/3  іВычитание непосредственногоі
    і         і               і     ібайта из байта r/m         і
    і81 /5 iw іSUB r/m16,imm16і1/3  іВычитание непосредственногоі
    і         і               і     іслова из слова r/m         і
    і81 /5 id іSUB r/m32,imm32і1/3  іВычитание непосредственногоі
    і         і               і     ідвойного слова из          і
    і         і               і     ідвойного слова r/m         і
    і83 /5 ib іSUB r/m16,imm8 і1/3  іВычитание непосредственногоі
    і         і               і     ірасширенного знаком байта  і
    і         і               і     іиз слова r/m               і
    і83 /5 ib іSUB r/m32,imm8 і1/3  іВычитание непосредственногоі
    і         і               і     ірасширенного знаком байта  і
    і         і               і     іиз двойного слова r/m      і
    і28 /r    іSUB r/m8,r8    і1/3  іВычитание регистра -       і
    і         і               і     ібайта из байта r/m         і
    і29 /r    іSUB r/m16,r16  і1/3  іВычитание регистра -       і
    і         і               і     іслова из слова r/m         і
    і29 /r    іSUB r/m32,r32  і1/3  іВычитание регистра -       і
    і         і               і     ідвойного слова из          і
    і         і               і     ідвойного слова r/m         і
    і2A /r    іSUB r8,r/m8    і1/2  іВычитание регистра -       і
    і         і               і     ібайта из байта r/m         і
    і2B /r    іSUB r16,r/m16  і1/2  іВычитание регистра -       і
    і         і               і     іслова из слова r/m         і
    і2B /r    іSUB r32,r/m32  і1/2  іВычитание регистра -       і
    і         і               і     ідвойного слова из          і
    і         і               і     ідвойного слова r/m         і
    АДДДДДДДДДБДДДДДДДДДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
M
                                                 437
     Работа команды
IF SRC это байт, а DEST это слово или двойное слово
THEN DEST = DEST - SignExtend(SRC);
ELSE DEST <- DEST - SRC;
FI;
     Описание
    Команда SUB  вычитает  второй  операнд  (SRC) из
первого (DEST).  Первому операнду присваивается  ре-
зультат  вычитания,  а  флаги  устанавливаются соот-
ветствующим образом.
    При вычитании из операнда - слова непосредствен-
ного байтового значения последнее расширяется знаком
до размера операнда назначения.
     Изменяемые флаги
    Флаги OF,  SF, ZF, AF, PF и CF устанавливаются в
соответствии с результатом.
     Исключения защищенного режима
    #GP(0), если назначением является  сегмент,  не-
доступный для записи;
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в  случае недопустимого адреса в сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 13,  если  какая-либо  часть операнда
лежит вне пространства исполнительных адресов  от  0
до 0FFFFH.
438
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #PF (код сбоя) для страничных сбоев.
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
     4TEST5 - Логическое сравнение
P      ЪДДДДДДДДВДДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДД
ДДДДї
      іКод     і Команда    іЧисло    і Описание                 
 і
      іоперацииі            ітактовых і                          
 і
      і        і            іциклов   і                          
 і
      ГДДДДДДДДЕДДДДДДДДДДДДБДДДВДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДД
Дґ
      іA8 ib   іTEST AL,imm8    і1    іAND  для  непосредственног
оі
      і        і                і     ібайта и  AL               
 і
      іA9 iw   іTEST AX,imm16   і1    іAND  для  непосредственног
оі
      і        і                і     іслова и  AX               
 і
      іA9 id   іTEST EAX,imm32  і1    іAND  для  непосредственног
оі
      і        і                і     ідвойного слова  и EAX     
 і
      іF6 /0 ibіTEST r/m8,imm8  і1/2  іAND  для  непосредственног
оі
      і        і                і     ібайта и  байта r/m        
 і
      іF7 /0 iwіTEST r/m16,imm16і1/2  іAND  для  непосредственног
оі
      і        і                і     іслова и  слова r/m        
 і
      іF7 /0 idіTEST r/m32,imm32і1/2  іAND  для  непосредственног
оі
      і        і                і     ідвойного слова и          
 і
      і        і                і     ідвойного слова r/m        
 і
      і84 /r   іTEST r/m8,r8    і1/2  іAND  для  регистра -      
 і
      і        і                і     ібайта и  байта r/m        
 і
      і85 /r   іTEST r/m16,r16  і1/2  іAND  для  регистра -      
 і
      і        і                і     іслова и  слова r/m        
 і
      і85 /r   іTEST r/m32,r32  і1/2  іAND  для  регистра -      
 і
      і        і                і     ідвойного слова и          
 і
      і        і                і     ідвойного слова r/m        
 і
      АДДДДДДДДБДДДДДДДДДДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДД
ДЩM
                                                 439
     Работа команды
DEST := LeftSRC AND RightSRC;
CF <- 0;
OF <- 0;
     Описание
    Команда TEST вычисляет поразрядное логическое  И
(AND) для двух заданных ей операндов. Каждый бит ре-
зультата равен 1, если оба соответствующих бита опе-
рандов равны 1; в противном случае этот бит равен 0.
Результат операции теряется, а модифицируются только
флаги.
     Изменяемые флаги
    Флаги OF и CF очищаются;
    флаги SF, ZF и PF устанавливаются в соответствии
с результатом.
     Исключения защищенного режима
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в  случае недопустимого адреса в сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 13,  если  какая-либо  часть операнда
лежит вне пространства исполнительных адресов  от  0
до 0FFFFH.
440
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:  #PF (код сбоя) для страничных сбоев. #AC для
невыравненной  ссылки  к  памяти  при текущем уровне
привилегированности, равном 3.
     4VERR, VERW5 - Верификация доступности чтения или
                  записи сегмента
ЪДДДДДДДДВДДДДДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
іКод     іКоманда   іЧисло   і Описание                   і
іоперацииі          ітактовыхі                            і
і        і          іциклов  і                            і
ГДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і0F 00 /4іVERR r/m16і 11/11  іУстановка ZF=1, если сегменті
і        і          і        ідоступен для чтения,        і
і        і          і        іселектор в r/m16            і
і0F 00 /5іVERW r/m16і 11/11  іУстановка ZF=1, если сегменті
і        і          і        ідоступен для записи,        і
і        і          і        іселектор в r/m16            і
АДДДДДДДДБДДДДДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
     Работа команды
IF сегмент с селектором в (r/m) доступен для
   текущего уровня защиты
   AND ((сегмент доступен для чтения согласно VERR) OR
        (сегмент доступен для записи согласно VERW))
THEN ZF <- 1;
ELSE ZF <- 0;
FI;
     Описание
    Двух-байтовый регистр  или операнд памяти команд
VERR и VERW  содержит  значение  селектора.  Команды
VERR и VERW определяют доступность сегмента, указан-
ного селектором,  с текущего уровня  привилегирован-
                                                 441
ности,  а  также,  доступен ли он для чтения (VERR),
или для записи (VERW).  Если  сегмент  доступен,  то
устанавливается флаг ZF; если сегмент недоступен, то
флаг ZF очищается.  Для установки  флага  ZF  должны
удовлетворяться следующие условия:
    - Селектор должен обозначать дескриптор в преде-
лах  границ  таблицы (GDT или LDT):  селектор должен
быть "определен".
    - Селектор должен обозначать дескриптор сегмента
кода или данных (а не дескриптор сегмента  состояния
задачи, LDT или шлюза).
    - Для  команды VERR сегмент должен быть доступен
для чтения. Для команды VERW сегмент должен быть се-
ментом данных, доступным для чтения.
    - Если кодовый сегмент доступен для чтения и яв-
ляется конформным, уровень привилегированности деск-
риптора (DPL) для команды  VERR  может  иметь  любое
значение.  В противном случае DPL должен быть больше
или равен (это соответствует меньшей или равной  при
илегированности) как текущего уровня привилегирован-
ности, так и RPL селектора.
    Выполняется такая же проверка достоверности, как
если бы сегмент был загружен в регистр  DS,  ES,  FS
или GS,  и был выполнен указанный доступ (чтения или
записи). Флаг ZF принимает результат проверки досто-
верности.  Значение  селектора  не  может давать в р
зультате исключение  защиты,  позволяя  программному
обеспечению предупреждать возможные проблемы доступа
к сегменту.
     Изменяемые флаги
    Флаг ZF устанавливается,  если сегмент доступен,
и очищается в противном случае.
     Исключения защищенного режима
    Сбои, генерируемые  неверной адресацией операнда
памяти,  содержащего селектор;  селектор не загружа-
ется  в какой-либо сегментный регистр,  а сбои,  от-
442
носящиеся к операнду селектора, не генерируются.
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в случае недопустимого адреса в  сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 6;  команды VERR и VERW в режиме  ре-
альных адресов не распознаются.
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
     4WAIT5 - Ожидание
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    і9B       іWAIT       і 1-3     іЗаставляет процессор провери
ть і
    і         і           і         іналичие числовых исключений 
   і
    АДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
     Описание
    Команда WAIT  заставляет процессор проверить на-
личие подвешенных немаскируемых числовых исключений,
прежде чем перейти к следующей команде.
                                                 443
     Изменяемые флаги
    Отсутствуют
     Исключения защищенного режима
    #NM, если MP и TS в CR0 установлены.
     Исключения режима реальных адресов
    Прерывание 7, если MP и TS в CR0 установлены.
     Исключения виртуального режима 8086
    #NM, если MP и TS в CR0 установлены.
     Примечания
    Помещение команды  WAIT после команды ESC гаран-
тируют,  что все немаскируемые исключения операций с
плавающей  точкой,  которые могут быть сгенерированы
командами,  будут обработаны до того,  как процессор
сможет моддифицировать результаты этих команд.
    FWAIT это альтернативная мнемоническая форма ко-
манды WAIT.
    Информация об использовании команды WAIT (FWAIT)
приводится в главе 18, в разделе "Параллельная обра-
ботка".
     4WBINVD5 - Обратная запись и аннулирование кеша
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    і0F 09    іWBINVD     і 5       іОбратная запись и аннулирова
ниеі
    і         і           і         івсего кеша                  
   і
    АДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
444
     Работа команды
    Очистка внутреннего  кеша Сигнал внешнему кешу о
необходимости выполнить обратную запись Сигнал внеш-
нему кешу о необходимости очистки
     Описание
    Очищается внутренний кеш,  и генерируется специ-
альный цикл шины,  указывающий, что внешний кеш дол-
жен  выполнить запись его содержимого в главную опе-
ративную память.  Далее следует еще один специальный
цикл  шины,  указывающий  внешнему  кешу на то,  что
внешний кеш должен быть очищен.
     Изменяемые флаги
    Отсутствуют
     Исключения защищенного режима
    Отсутствуют
     Исключения режима реальных адресов
    Отсутствуют
     Исключения виртуального режима 8086
    Отсутствуют
     Примечания
    Команда зависима от реализации;  ее работа может
по-разному   реализовываться  будущими  процессорами
Intel.
    Ответственность за  исполнение сигналов обратной
записи и очистки внешнего кеша лежит на соответству-
ющем аппаратном обеспечении.
    Процессорами 386 эта команда не  поддерживается.
                                                 445
Информация  об использовании этой команды совместимо
с процессорами 386 см.  в разделе 3.11. Запрет кеши-
рования описан в разделе 12.2.
     4XADD5 - Обмен местами и сложение
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДБДДВДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    і0F C0 /r іXADD r/m8,r8  і3/4   іОбмен местами регистра - бай
та і
    і         і              і      іи байта r/m; загрузка суммы 
   і
    і         і              і      ів байт r/m                  
   і
    і0F C1 /r іXADD r/m16,r16і3/4   іОбмен местами регистра - сло
ва і
    і         і              і      іи слова r/m; загрузка суммы 
   і
    і         і              і      ів слово r/m                 
   і
    і0F C1 /r іXADD r/m32,r32і3/4   іОбмен местами регистра -    
   і
    і         і              і      ідвойного слова и двойного сл
оваі
    і         і              і      іr/m; загрузка суммы в       
   і
    і         і              і      ідвойное слово r/m           
   і
    АДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
     Работа команды
врем <- DEST
DEST <- врем + SRC
SRC <- врем
     Описание
    Команда XADD загружает DEST и SRC,  а затем заг-
ружает сумму DEST с исходным значением SRC в DEST.
     Изменяемые флаги
    Флаги CF,  PF, AF, SF, ZF и OF получают такие же
значения, как и в случае команды ADD.
446
     Исключения защищенного режима
    #GP(0), если  назначением является сегмент,  не-
доступный для записи;
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в случае недопустимого адреса в  сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 13,  если какая-либо  часть  операнда
лежит  вне  пространства исполнительных адресов от 0
до 0FFFFH.
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #PF (код сбоя) для страничных сбоев.
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
     Примечания
    Данная команда может быть  использована  с  пре-
фиксом LOCK.  Микропроцессор 386 DX не реализует эту
команду. При использовании команды вы должны обеспе-
чить  эквивалентный код,  также работающий и на про-
цессоре 386 DX. О том, как во время выполнения опре-
делить,  является ли процессор процессором i486, на-
писано в разделе 3.11.
                                                 447
     4XCHG5 - Обмен местами регистра/памяти и регистра
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДБДДДВДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    і90 +r    іXCHG AX,r16    і3    іОбмен местами регистра - сло
ва і
    і         і               і     іи AX                        
   і
    і90 +r    іXCHG r16,AX    і3    іОбмен местами регистра - сло
ва і
    і         і               і     іи AX                        
   і
    і90 + r   іXCHG EAX,r32   і3    іОбмен местами регистра -    
   і
    і         і               і     ідвойного слова и EAX        
   і
    і90 + r   іXCHG r32,EAX   і3    іОбмен местами регистра -    
   і
    і         і               і     ідвойного слова и EAX        
   і
    і86 /r    іXCHG r/m8,r8   і3/5  іОбмен местами регистра - бай
та і
    і         і               і     іи байта по исполнительному  
   і
    і         і               і     іадресу                      
   і
    і86 /r    іXCHG r8,r/m8   і3/5  іОбмен местами регистра - бай
та і
    і         і               і     іи байта по исполнительному  
   і
    і         і               і     іадресу                      
   і
    і87 /r    іXCHG r/m16,r16 і3/5  іОбмен местами регистра - сло
ва і
    і         і               і     іи слова по исполнительному  
   і
    і         і               і     іадресу                      
   і
    і87 /r    іXCHG r16,r/m16 і3/5  іОбмен местами регистра - сло
ва і
    і         і               і     іи слова по исполнительному  
   і
    і         і               і     іадресу                      
   і
    і87 /r    іXCHG r/m32,r32 і3/5  іОбмен местами регистра -    
   і
    і         і               і     ідвойного слова и двойного сл
оваі
    і         і               і     іпо исполнительному адресу   
   і
    і87 /r    іXCHG r32,r/m32 і3/5  іОбмен местами регистра -    
   і
    і         і               і     ідвойного слова и двойного сл
оваі
    і         і               і     іпо исполнительному адресу   
   і
    АДДДДДДДДДБДДДДДДДДДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
     Работа команды
врем <- DEST
DEST <- SRC
SRC <- врем
448
     Описание
    Команда XCHG меняет местами два  операнда.  Опе-
ранды  могут  следовать  в любой последовательности.
Если в команде участвует операнд памяти, то на время
обмена  возбуждается  сигнал  LOCK#,  независимо  от
присутствия или отсутствия префикса LOCK или от зна-
чения IOPL.
     Изменяемые флаги
    Отсутствуют
     Исключения защищенного режима
    #GP(0), если  назначением является сегмент,  не-
доступный для записи;
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в случае недопустимого адреса в  сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 13,  если какая-либо  часть  операнда
лежит  вне  пространства исполнительных адресов от 0
до 0FFFFH.
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #PF (код сбоя) для страничных сбоев.
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
                                                 449
     4XLAT/XLATB5 - Ассоциативная трансляция в таблице
P    ЪДДДДДДДДДВДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДДДї
    іКод      іКоманда    іЧисло    і Описание                   
   і
    іоперации і           ітактовых і                            
   і
    і         і           іциклов   і                            
   і
    ГДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДґ
    іD7       іXLAT m8    і    4    іУстановка AL равным байту   
   і
    і         і           і         іпамяти DS:[(E)BX+AL без знак
а] і
    іD7       іXLATB      і    4    іУстановка AL равным байту   
   і
    і         і           і         іпамяти DS:[(E)BX+AL без знак
а] і
    АДДДДДДДДДБДДДДДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДЩM
     Работа команды
IF AddressSize = 16
THEN
  AL <- (BX + ZeroExtend(AL))
ELSE (* AddressSize = 32 *)
  AL <- (EBX + ZeroExtend(AL))
FI;
     Описание
    Команда XLAT  изменяет регистр AL с индекса таб-
лицы на элемент таблицы. Регистр AL должен представ-
лять собой индекс без знака для таблицы,  адресуемой
парой регистров DS:BX (в случае атрибута размера ад-
реса,  равного  16),  или  DS:EBX (в случае атрибута
размера адреса 32 бита).
    Операнд команды  XLAT  позволяет переопределение
сегмента. Команда XLAT использует содержимое регист-
ра  BX  даже  при  его отличии от смещения операнда.
Смещение операнда должно быть помещено в регистр  BX
или EBX предыдущей командой.
    Форма команды, не имеющая операнда, XLATB, может
быть использована, если таблица для BX или EBX всег-
да находится в сегменте DS.
450
     Изменяемые флаги
    Отсутствуют
     Исключения защищенного режима
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в  случае недопустимого адреса в сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 13,  если  какая-либо  часть операнда
лежит вне пространства исполнительных адресов  от  0
до 0FFFFH.
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #PF (код сбоя) для страничных сбоев.
    #AC для невыравненной ссылки к памяти при  теку-
щем уровне привилегированности, равном 3.
                                                 451
     4XOR5 - Логическое исключающее ИЛИ
P    ЪДДДДДДДДВДДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
ДДї
    іКод     і Команда    іЧисло    і Описание                  і
    іоперацииі            ітактовых і                           і
    і        і            іциклов   і                           і
    ГДДДДДДДДЕДДДДДДДДДДДДБДДДВДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
    і34 ib   іXOR  AL,imm8    і1    іXOR  для  непосредственногоі
    і        і                і     ібайта и  AL                і
    і35 iw   іXOR  AX,imm16   і1    іXOR  для  непосредственногоі
    і        і                і     іслова и  AX                і
    і35 id   іXOR  EAX,imm32  і1    іXOR  для  непосредственногоі
    і        і                і     ідвойного слова  и EAX      і
    і80 /6 ibіXOR  r/m8,imm8  і1/3  іXOR  для  непосредственногоі
    і        і                і     ібайта и  байта r/m         і
    і81 /6 iwіXOR  r/m16,imm16і1/3  іXOR  для  непосредственногоі
    і        і                і     іслова и  слова r/m         і
    і81 /6 idіXOR  r/m32,imm32і1/3  іXOR  для  непосредственногоі
    і        і                і     ідвойного слова и           і
    і        і                і     ідвойного слова r/m         і
    і83 /6 ibі XOR r/m16,imm8 і1/3  іXOR для   непосредственногоі
    і        і                і     ірасширенного знаком байта  і
    і        і                і     іиз слова r/m               і
    і83 /6 ibі XOR r/m32,imm8 і1/3  іXOR для   непосредственногоі
    і        і                і     ірасширенного знаком байта  і
    і        і                і     іиз двойного слова r/m      і
    і30 /r   і XOR r/m8,r8    і1/3  іXOR  для  регистра -       і
    і        і                і     ібайта и  байта r/m         і
    і31 /r   і XOR r/m16,r16  і1/3  іXOR  для  регистра -       і
    і        і                і     іслова и  слова r/m         і
    і31 /r   і XOR r/m32,r32  і1/3  іXOR  для  регистра -       і
    і        і                і     ідвойного слова и           і
    і        і                і     ідвойного слова r/m         і
    і32 /r   і XOR r8,r/m8    і1/2  іXOR  для  регистра -       і
    і        і                і     ібайта и  байта r/m         і
    і33 /r   і XOR r16,r/m16  і1/2  іXOR  для  регистра -       і
    і        і                і     іслова и  слова r/m         і
    і33 /r   і XOR r32,r/m32  і1/2  іXOR  для  регистра -       і
    і        і                і     ідвойного слова и           і
    і        і                і     ідвойного слова r/m         і
    АДДДДДДДДБДДДДДДДДДДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
M
452
     Работа команды
DEST <- LeftSRC XOR RightSRC;
CF <- 0;
OF <- 0;
     Описание
    Команда XOR вычисляет исключающее ИЛИ (XOR)  для
двух  заданных  ей операндов.  Каждый бит результата
равен 1, если соответствующие биты операндов различ-
ны; в противном случае этот бит равен 0. Ответ заме-
щает собой первый операнд.
     Изменяемые флаги
    Флаги OF и CF очищаются; флаги SF, ZF и PF уста-
навливаются  в  соответствии с результатом;  флаг AF
неопределен.
     Исключения защищенного режима
    #GP(0), если назначением является  сегмент,  не-
доступный для записи;
    #GP(0) в  случае  недопустимого  исполнительного
адреса операнда памяти в сегментах CS,  DS,  ES,  FS
или GS;
    #SS(0) в случае недопустимого адреса в  сегменте
SS;
    #PF(код сбоя) в случае страничного сбоя;
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.
     Исключения режима реальных адресов
    Прерывание 13,  если какая-либо  часть  операнда
лежит  вне  пространства исполнительных адресов от 0
до 0FFFFH.
                                                 453
     Исключения виртуального режима 8086
    Те же исключения,  что и для режима реальных ад-
ресов:
    #PF (код сбоя) для страничных сбоев.
    #AC для  невыравненной ссылки к памяти при теку-
щем уровне привилегированности, равном 3.


Яндекс цитирования