
CBW/CWDE  -  ८ࠧ   ᫮/८ࠧ ᫮
               ᫮

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|98        CBW      3          AX <- ७  AL       |
|98        CWDE     3          EAX<- ७  AX       |
-----------------------------------------------------------------

 
--------------

IF OperandSize = 16 (*  = CBW *)
THEN AX <- SignExtend(AL);
ELSE (OperandSize = 32,  = CWDE *)
  EAX <- SignExtend(AX);
FI;

ᠭ
--------

 CBW ८ࠧ뢠 騩    ॣ AL 
饥  ᫮  ॣ AX ⥬ ७ 襣 
ॣ AL ( )    ॣ AH.  CWDE
८ࠧ뢠 饥  ᫮  ॣ AX  饥 
 ᫮  ॣ AX ⥬ ७ 襣 
ॣ AX ( )     ॣ EAX.
⬥⨬,   CWDE ⫨筠   CWD.  CWD
ᯮ  ⢥ 祭  ॣ EAX 
ॣ஢ DX:AX.


塞 䫠
----------------

     

᪫祭 饭 ०
----------------------------------

     

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

-----------------------------------------------------------------


CLC -  䫠 ७

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
| F8       CLC      2           䫠 ७           |
-----------------------------------------------------------------

 
--------------

CF <- 0;

ᠭ
--------

 CLC 頥 䫠 CF.  㣨 䫠  ॣ  
.

塞 䫠
----------------

頥 䫠 CF.

᪫祭 饭 ०
----------------------------------

     

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

-----------------------------------------------------------------


CLD -  䫠 ࠢ

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
| FC       CLD      2           䫠 ࠢ:    |
|                              믮 ப  㤥|
|                              ந室 ६ SI  DI    |
-----------------------------------------------------------------

 
--------------

DF <- 0;

ᠭ
--------

 CLD 頥 䫠 ࠢ.  㣨 䫠 
ॣ   . ᫥ 믮  CLD ப
  ६஢ ᯮ㥬  
ॣ (SI / DI).

塞 䫠
----------------

     頥 䫠 DF.

᪫祭 饭 ०
----------------------------------

     

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

-----------------------------------------------------------------


CLI -  䫠 뢠

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
| FA       CLI      5           䫠 뢠;        |
|                              뢠 饭             |
-----------------------------------------------------------------

 
--------------

IF <- 0;

ᠭ
--------

 CLI 頥 䫠 뢠 IF, ᫨ ⥪騩 ஢
ਢ஢   ࠢ IOPL.  㣨 䫠 
 . 譨 뢠  ᯮ   
CLI  稭  ⮣   ⠭  IF.

塞 䫠
----------------

     頥 䫠 IF.

᪫祭 饭 ०
----------------------------------

#GP(0), ᫨ ⥪騩 ஢ ਢ஢  訩
 (.. ਢ஢ ), 祬 ஢
ਢ஢ /뢮  ॣ 䫠. ஢
ਢ஢ /뢮  訩 ஢
ਢ஢,  ஬ ᪠ 믮
/뢮.

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

#GP(0)   饭 ०.

-----------------------------------------------------------------

CLTS -  䫠 ४祭   CR0

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
| 0F 06    CLTS     7           䫠 ४祭 |
-----------------------------------------------------------------

 
--------------

 TS  CR0 <- 0;

ᠭ
--------

 CLTS 頥 䫠 ४祭  (TS)  ॣ
CR0.  䫠 ⠭ ஬ 直 ࠧ, 
ந室 ४祭 .  TS ᯮ 
ࠢ ७ﬨ  ᫥騬 ࠧ:

-  믮  ESC  ⠭ 䫠 TS
  뢠 ᪫祭.

- 믮  WAIT 뢠 ᪫祭 誨 
  ६ ⠭ 䫠 MP  TS.

 ࠧ, ᫨ ४祭  ந諮 ᫥ 砫
 ESC,  ॡ ࠭ ⥪  
樨  饩 窮, ० 祬   뤠 
 ESC. ࠡ稪 ᡮ ࠭ ⥪  頥 䫠
TS.

 CLTS ᯮ  樮 ணࠬ
ᯥ祭,    ਪ ணࠬ.  ਢ஢
,    믮 ⮫쪮  ஢
ਢ஢ 0.

塞 䫠
----------------

頥 䫠 TS (䫠  ॣ CR0,    䫠
ॣ).

᪫祭 饭 ०
----------------------------------

#GP(0), ᫨  CLTS 믮  ⥪騬 ஢
ਢ஢,  ࠢ 0.


᪫祭 ० ॠ ᮢ
---------------------------------------

 (⨬  ० ॠ ᮢ  ⮣, ⮡
 樠  饭 ०).

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

-----------------------------------------------------------------


CMC -  䫠 ७

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
| F5       CMC      2           䫠 ७        |
-----------------------------------------------------------------

 
--------------

CF <- NOT CF;

ᠭ
--------

 CMC   ⨢ 祭 䫠 CF. 
㣨 䫠 ﭨ  뢠.

塞 䫠
----------------

 CF ᮤন   室 祭.


᪫祭 饭 ०
----------------------------------

     

᪫祭 ० ॠ ᮢ
---------------------------------------

     

᪫祭 㠫쭮 ० 8086
----------------------------------------

     

-----------------------------------------------------------------


CMP - ࠢ  ࠭

-----------------------------------------------------------------
|             ᫮    ᠭ                       |
|樨               ⠪⮢                                |
|                       横                                  |
|                                                               |
|3C ib     CMP AL,imm8      1    ࠢ ।⢥    |
|                                  AL                     |
|3D iw     CMP AX,imm16     1    ࠢ ।⢥    |
|                                ᫮  AX                     |
|3D id     CMP EAX,imm32    1    ࠢ ।⢥    |
|                                 ᫮  EAX           |
|80 /7 ib  CMP r/m8,imm8    1/2  ࠢ ।⢥    |
|                                  ⮬  r/m           |
|81 /7 iw  CMP r/m16,imm16  1/2  ࠢ ।⢥    |
|                                ᫮  ᫮  r/m          |
|81 /7 id  CMP r/m32,imm32  1/2  ࠢ ।⢥    |
|                                 ᫮   ᫮|
|                                 r/m                          |
-----------------------------------------------------------------

 
--------------

LeftSRC - SignExtend(RightSRC);
(* CMP  믮  १;   祭 - ⠭
   䫠 *)

ᠭ
--------

 CMP ⠥ ன ࠭  ࢮ,   ⫨稥 
 SUB,  뢠 १:   ⮫쪮
ﭨ 䫠.  CMP 筮 ᯮ  ⠭ 
᫮묨 室   SETcc. (᮪ 
஢ப 䫠,     䫠, ਢ  ਫ
D). ᫨ ࠭ ॢ蠥    ࠢ 
।⢥ ⮬,    ᭠砫 
.


塞 䫠
----------------

 OF, SF, ZF, AF, PF  CF ⠭  ᮮ⢥⢨ 
१⮬.

᪫祭 饭 ०
----------------------------------

#GP(0)  砥 ⨬ ᯮ⥫쭮  ࠭
  ᥣ CS, DS, ES, FS  GS; #SS(0)  砥
⨬   ᥣ SS; #PF( ᡮ)  砥
࠭筮 ᡮ; #AC  ࠢ 뫪   
⥪饬 ஢ ਢ஢, ࠢ 3.

᪫祭 ० ॠ ᮢ
---------------------------------------

뢠 13, ᫨ -  ࠭  
࠭⢠ ᯮ⥫ ᮢ  0  0FFFFH.

᪫祭 㠫쭮 ० 8086
----------------------------------------

  ᪫祭,    ० ॠ ᮢ: #PF (
ᡮ)  ࠭ ᡮ; #AC  ࠢ 뫪 
  ⥪饬 ஢ ਢ஢, ࠢ 3.


CMPS/CMPSB/CMPSW/CMPSD  -  ࠢ ப ࠭

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|A6      CMPS m8,m8     8      ࠢ ⮢  ES:[(E)DI]    |
|                              (ன ࠭)  [(E)SI]       |
|                              ( ࠭)                 |
|A7      CMPS m16,m16   8      ࠢ ᫮     ES:[(E)DI]    |
|                              (ன ࠭)  [(E)SI]       |
|                              ( ࠭)                 |
|A7      CMPS m32,m32   8      ࠢ  ᫮ ES:[(E)DI]|
|                              (ன ࠭)  [(E)SI]       |
|                              ( ࠭)                 |
|A6      CMPSB          8      ࠢ ⮢  ES:[(E)DI]    |
|                                                DS:[SI]       |
|A7      CMPSW          8      ࠢ ᫮    ES:[(E)DI]    |
|                                                DS:[SI]       |
|A7      CMPSD          8      ࠢ  ᫮ ES:[(E)DI]|
|                                                DS:[SI]       |
-----------------------------------------------------------------

 
--------------

IF ( = CMPSD) OR
   (  ࠭ ⨯ DWORD)
THEN OperandSize <- 32;
ELSE OperandSize <- 16;
FI;
IF AddressSize = 16
THEN
  ᯮ SI   筨  DI   祭
ELSE (* AddressSize = 32 *)
  ᯮ ESI         筨    EDI    
    祭;
FI;
IF  ⮢ ⨯
THEN
  [-筨] - [-祭]; (* ࠢ ⮢ *)
  IF DF = 0 THEN IncDec <- 1 ELSE IncDec <- -1; FI;
ELSE
  IF OperandSize = 16
  THEN
    [-筨] - [-祭]; (* ࠢ ᫮ *)
    IF DF = 0 THEN IncDec <- 2 ELSE IncDec <- -2; FI;
  ELSE (* OperandSize = 32 *)
    [-筨] - [-祭]; (* ࠢ
                                                  ᫮ *)
    IF DF = 0 THEN IncDec <- 4 ELSE IncDec <- -4; FI;
  FI;
FI;
-筨 = -筨 + IncDec;
-祭 = -祭 + IncDec;

ᠭ
--------

 CMPS ࠢ , ᫮   ᫮, 
஥ 㪠뢠 ॣ -筨,  ⮬, ᫮
  ᫮,  ஥ 㪠뢠 ॣ
-祭.

᫨ ਡ ࠧ  ⮩  ࠢ 16 ⮢,  
⢥ ॣ஢  筨  祭 ᯮ
ॣ SI  DI;  ⨢ 砥 ᯮ ॣ ESI 
EDI. । 믮  CMPS  SI  DI ( ESI  EDI)
  㦥 ࠢ 祭 ᮢ.

ࠢ 믮 ।⢮ ⠭ ࠭,
஢ ॣ஬ -祭,  ࠭,
஢ ॣ஬ -筨.

⬥⨬,  ࠢ ⠭   CMPS  [SI] -
[DI]  [ESI] - [EDI].  ࠭ (SI  ESI) 
筨,  ࠢ ࠭ (DI  EDI)  祭. 
ࠢ ⨢ ࠢ, ਭ⮬  
ᮣ襭 Intel,   ࠭  祭, 
ࠢ - 筨.

 ⠭  뢠;  ࠦ ⮫쪮
 䫠.  ࠭ ।, ࠢ 
, ᫮   ᫮.  ࢮ ࠭ (SI 
ESI) ᯮ ॣ DS, ᫨  
८। ᥣ. ன ࠭ (DI  EDI) 
   ॣ ES; ८। ᥣ
.

᫥ ⮣,  ࠢ 믮, ந室 ⮬᪮
த  ॣ  筨   祭.
᫨ 䫠 DF ࠢ 0 (.. 뫠 ᯮ짮  CLD), 
ந室 ६  ॣ஢; ᫨  䫠 DF ࠢ 1
(뫠 믮  STD),  ந室 ६ ॣ.
 ࠢ ⮢ 믮 ६  ६  1,
 ࠢ ᫮  2,   ࠢ  ᫮ -  4.

 CMPSB, CMPSW  CMPSD  ᨭ  CMPS
lkz ࠢ ⮢, ᫮   ᫮, ᮮ⢥⢥.

 CMPS  ।⢮ 䨪 REPE  REPNE 
筮 ࠢ  ᯮ짮 CX  ECX ⮢, ᫮ 
 ᫮.  ஡ ଠ  ⮬ .  ᠭ
 REP.

塞 䫠
----------------

 OF, SF, ZF, AF, PF  CF ⠭  ᮮ⢥⢨ 
१⮬.

᪫祭 饭 ०
----------------------------------

#GP(0)  砥 ⨬ ᯮ⥫쭮  ࠭
  ᥣ CS, DS, ES, FS  GS; #SS(0)  砥
⨬   ᥣ SS; #PF( ᡮ)  砥
࠭筮 ᡮ; #AC  ࠢ 뫪   
⥪饬 ஢ ਢ஢, ࠢ 3.

᪫祭 ० ॠ ᮢ
---------------------------------------

뢠 13, ᫨ -  ࠭  
࠭⢠ ᯮ⥫ ᮢ  0  0FFFFH.

᪫祭 㠫쭮 ० 8086
----------------------------------------

  ᪫祭,    ० ॠ ᮢ: #PF (
ᡮ)  ࠭ ᡮ; #AC  ࠢ 뫪 
  ⥪饬 ஢ ਢ஢, ࠢ 3.


CMPXCHG - ࠢ  

-----------------------------------------------------------------
|              ᫮           ᠭ               |
|樨                ⠪⮢                               |
|                        横                                 |
|                                                               |
|0F A6/r CMPXCHG r/m8,r8 6/7, ᫨ ࠢ- ࠢ AL  ⮬  |
|                         ᯥ譮,  r/m.  ࠢ⢥ - |
|                         6/10     ⠭ ZF  -|
|                                          ॣ    |
|                                         r/m.  頥|
|                                        ZF  㦠  r/m|
|                                         AL                   |
|0F A7/r CMPXCHG         6/7, ᫨ ࠢ- ࠢ AL  ᫮ |
|        r/m16,r16        ᯥ譮,  r/m.  ࠢ⢥ - |
|                         6/10     ⠭ ZF  -|
|                                         ॣ-᫮    |
|                                       ᫮ r/m.  頥|
|                                       ZF  㦠 ᫮ r/m|
|                                         AX                   |
|0F A7/r CMPXCHG         6/7, ᫨ ࠢ- ࠢ AL   |
|        r/m32,r32        ᯥ譮,  ᫮ r/m.  ࠢ-|
|                         6/10     ⢥ ⠭- ZF  -|
|                                         ॣ-   |
|                                       ᫮ r/m.  頥|
|                                       ZF  㦠   |
|                                       ᫮ r/m  EAX.        |
-----------------------------------------------------------------

 
--------------

IF  = DEST
      ZF <- 1
      DEST <- SRC
ELSE
      ZF <- 0
       <- DEST

ᠭ
--------

 CMPXCHG ࠢ  (ॣ AL, AX  EAX)
 DEST. ᫨  ࠢ,  SRC 㦠  DEST.  ⨢
砥 DEST 㦠  .

塞 䫠
----------------

 CF, PF, AF, SF  OF  ⠪ ࠧ,  ᫨ 
뫠 믮  CMP  DEST  ஬  ⢥
࠭.  ZF ⠭, ᫨ ࠭ 祭 
 ࠢ;  ⨢ 砥  頥.

᪫祭 饭 ०
----------------------------------

#GP(0), ᫨ १    ᥣ,  ண
饭 ; #GP(0)  砥 ⨬ ᯮ⥫쭮
 ࠭   ᥣ CS, DS, ES, FS  GS; #SS(0)
 砥 ⨬   ᥣ SS; #PF( ᡮ) 
砥 ࠭筮 ᡮ; #AC  ࠢ 뫪  
 ⥪饬 ஢ ਢ஢, ࠢ 3.

᪫祭 ० ॠ ᮢ
---------------------------------------

뢠 13, ᫨ -  ࠭  
࠭⢠ ᯮ⥫ ᮢ  0  0FFFFH.

᪫祭 㠫쭮 ० 8086
----------------------------------------

  ᪫祭,    ० ॠ ᮢ: #PF (
ᡮ)  ࠭ ᡮ; #AC  ࠢ 뫪 
  ⥪饬 ஢ ਢ஢, ࠢ 3.

ਬ砭
----------

    ᯮ짮  䨪ᮬ LOCK. 
饭 䥩  設  ࠭ 祭
ਭ 横  ⭮⥫쭮  १ ࠢ.
᫨ ࠢ 稫 㤠筮,  DEST 뢠 ,
  ⨢ 砥  ࠭ 祭 뢠 DEST.
(   뤠 横 ⥭  墠⮬ 
ᮮ⢥饩   墠⮬).   ࠬ 386
 ন. ᯮ짮  CMPXCHG ᮢ⨬ 
386 ࠧ .  ࠧ 3.11.


-----------------------------------------------------------------
