INVD - 㫨஢ 

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|0F 08     INVD       4        㫨஢ ᥣ          |
-----------------------------------------------------------------

 

⪠ ७ 
 譥   

ᠭ
ந室 ⪠ ७ ,  뤠 ᯥ樠 横 設, 㪠뢠騩  室 ⪨ 譨 襩. , 室騥  譨   ⭮ , .
塞 䫠

᪫祭 饭 ०

᪫祭 ० ॠ ᮢ

᪫祭 㠫쭮 ० 8086

ਬ砭
  ᨬ  ॠ樨: ࠧ  Intel  ॠ뢠  㭪樨 -ࠧ.
⢥⢥  ॠ  ᨣ ⪨ 譥    ⭮ ᯥ祭.
  ࠬ 386  ন. ᯮ짮 , ᮢ⨬  ࠬ 386 .  ࠧ 3.11. ⭠  "吝"     ⨢  ᬠਢ  ᠭ  WBINVD.
饭 ஢ ᬠਢ  ࠧ 12.2. 

INVLPG - 㫨஢  TLB

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|0F 01/7   INVLPG   12  砥  㫨஢  TLB     |
|                   ᮢ                                  |
-----------------------------------------------------------------

 

㫨஢  TLB

ᠭ
 INVLPG ᯮ  㫨஢    TLB,  ।⠢ ᮡ , ᯮ㥬  ࠭ ⮢ ࠭ ⠡. ᫨ TLB ᮤন ⮢ , ⮡ࠦ騩  ࠭ ,    㤥 祭  ⮢.
塞 䫠

᪫祭 饭 ०
 ᯮ짮   ࠭-ॣ஢  ᪫祭 ୮  樨.
᪫祭 ० ॠ ᮢ

᪫祭 㠫쭮 ० 8086
 ᯮ짮   ࠭-ॣ஢  ᪫祭 ୮  樨.
ਬ砭
  ᨬ  ॠ樨: ࠧ  Intel  ॠ뢠  㭪樨 -ࠧ.
  ࠬ 386  ন. ᯮ짮 , ᮢ⨬  ࠬ 386 .  ࠧ 3.11
饭 ஢ ᬠਢ  ࠧ 12.2. 

IRET/IRETD -   뢠

-----------------------------------------------------------------
|            ᫮      ᠭ                      |
|樨              ⠪⮢                                 |
|                      横                                   |
|                                                               |
|CF        IRET        15          뢠          |
|                                (쭨   祭  |
|                                 ⥪ 䫠)               |
|CF        IRET        36          뢠          |
|                                 襬 ஢              |
|                                ਢ஢            |
|CF        IRET        TS+32       뢠,         |
|                                㣠  (NT = 1)         |
|CF        IRETD       15          뢠          |
|                                (쭨   祭  |
|                                 ⥪ 䫠)               |
|CF        IRETD       36          뢠          |
|                                 襬 ஢              |
|                                ਢ஢            |
|CF        IRETD       15          뢠,         |
|                                 ० V86                   |
|CF        IRET        TS+32       뢠,         |
|                                㣠  (NT = 1)         |
-----------------------------------------------------------------

ਬ砭: ਡ 祭 ts  ᫥饩
⠡楩:

-----------------------------------------------------------------
                     |           
         |-------------------------------------------
                     |  TSS i486 |  TSS 80286 |  TSS VM
-----------------------------------------------------------------
 VM/i486/TSS 80286   |     199    |     180     |     177
-----------------------------------------------------------------

 


IF PE = 0
THEN (*  ॠ ᮢ *)
  IF operandSize = 32 (*  = IRETD *)
  THEN EIP <- Pop();
  ELSE (*  = IRET *)
    IP <- Pop();
  FI;
  CS <- Pop();
  IF OperandSize = 32 (*  = IRETD *)
  THEN EFLAGS <- Pop();
  ELSE (*  = IRET *)
    FLAGS <- Pop();
  FI;
ELSE (* 饭 ० *)
  IF VM = 1
  THEN #GP(0);
  ELSE
    IF NT = 1
    THEN GOTO -;
    ELSE
      IF VM = 1  ࠧ 䫠, 室饬  ⥪
      THEN GOTO ---V86;
      ELSE GOTO -;
      FI;
    FI;
  FI;
FI; ---V86:  (* ࢠ 楤  ० V86 *)
  IF 孨 36 ⮢ ⥪   । ࠭
  THEN #SS(0);
  FI;
  IF 㪠⥫    ࠭  ᥣ THEN #GP(0);
  FI;

  EFLAGS <-   SS:[ESP   +  8];  (*  ⠭  VM  ࢠ
                                    ணࠬ *)
  EIP <- Pop();
  CS <- Pop(); (* CS  ᥡ,   8086, .. VM = 1 *)
   <-   Pop();   (*  祭    ⥪    ३  㦥
                           ⠭ EFLAGS *)
  ६ESP <- Pop();
  ६SS <- Pop();
  ES <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
  DS <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
  FS <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
  GS <-  Pop();  (*    ⥪ 2 ᫮;  襥 ᫮
                     뢠 *)
    SS:ESP <- ६SS:६ESP;

  (*  믮  㠫쭮 ० 8086 *)

-:
  ᬮਬ ᥫ ⭮    TSS, 㥬
    ॣ஬ ⥪饩 ;
        /        祭
               ,  #TS(ᥫ  TSS);
        ࠭ GDT,   #TS(ᥫ 
                                                   TSS);
     AR   TSS,  #TS(ᥫ  TSS);
    TSS  ⢮,  #NP(ᥫ  TSS);
  -    TSS,    ᥫ஬
                           ⭮  ;
  祭 ࢠ   NOT BUSY ( );
  ⥫     । ࠭  ᥣ,
  ELSE #GP(0);

-:
  IF OperandSize = 32
  THEN  ᫮  ⥪    । ࠭ ⥪,
        #SS(0);
  ELSE ஥ ᫮  ⥪    । ࠭ ⥪,
        #SS(0);
  FI;
  RPL ᥫ   CS            >=  CPL,  
                       #GP(ᥫ );
  IF RPL ᥫ  = CPL
  THEN GOTO ----;
  ELSE GOTO ---;
  FI;

----:
  IF OperandSize = 32
  THEN
    孨 12  ⮢    ⥪      । ࠭,
                     #SS(0);
     CS  ( eSP+4)   -,  #
                          #GP(0);
  ELSE
    孨 6   ⮢    ⥪      । ࠭,
                     #SS(0);
     CS  ( eSP+2)   -,  #
                          #GP(0);
  FI;
   ᥫ    ࠭  ⠡ ਯ஢,
           #GP(ᥫ );
   AR       ᥣ,   #GP(ᥫ
          );
  IF -ଭ
  THEN DPL  ᥣ   = CPL;
  ELSE #GP(ᥫ );
  FI;
  IF ଭ
  THEN DPL    ᥣ        <=   CPL,   
           #GP(ᥫ );
  ⥫     । ࠭  ᥣ,
            #GP(0);
  FI;
  IF OperandSize = 32
  THEN
    㧪 CS:IP  ⥪;
    㧪 ॣ CS ਯ஬   ᥣ;
    㧪 EFLAGS 쨬  ᫮  ⥪;
    ६ eSP  12;
  ELSE
    㧪 ॣ CS ਯ஬   ᥣ;
    㧪 EFLAGS 쨬 ᫮  ⥪;
    ६ eSP  6;
  FI;

---:
  IF OperandSize = 32
  THEN 孨 20 ⮢    ⥪      । ࠭,
                     #SS(0);
  ELSE 孨 10 ⮢    ⥪      । ࠭,
                     #SS(0);
  FI;
  ᬮਬ ᥫ CS   易   ਯ:
       -,  #GP(0);
     ᥫ    ࠭  ⠡ ਯ஢,
          ELSE #GP(ᥫ );
     AR       ᥣ,   #GP(ᥫ
          );
    IF -ଭ
    THEN DPL  ᥣ   = RPL ᥫ CS;
    ELSE #GP(ᥫ );
    FI;
    IF ଭ
    THEN DPL    ᥣ        > CPL,
    ELSE #GP(ᥫ );
    FI;
      ⢮,  #NP(ᥫ );

  ᬮਬ ᥫ SS   易   ਯ:
       -,  #GP(0);
     ᥫ    ࠭  ⠡ ਯ஢,
          ELSE #GP(ᥫ SS);
    RPL ᥫ   ࠢ RPL ᥫ CS 
          ELSE #GP(ᥫ SS);
     AR     ᥣ , 㯭  ,
           #GP(ᥫ SS);
    DPL ᥣ ⥪   = RPL ᥫ CS ;
    ELSE #GP(ᥫ SS);
    SS  ⢮,  #NP(ᥫ SS);

  ⥫     । ࠭  ᥣ,
            #GP(0);
  IF OperandSize = 32
  THEN
    㧪 CS:EIP  ⥪;
    㧪 EFLAGS 祭ﬨ  (eSP+8);
  ELSE
    㧪 CS:IP  ⥪;
    㧪 FLAGS 祭ﬨ  (eSP+4);
  FI;
  㧪 SS:eSP  ⥪;
  㧪 ॣ CS ਯ஬ CS;
  㧪 ॣ SS ਯ஬ SS;
  FOR   ES, FS, GS  DS
  DO;
    IF ⥪饥 祭 ॣ ⮢୮  譥 ஢;
    THEN 㫥 ॣ  ⪠ 䫠 ⮢୮;
    FI;
    ⮡     ⮢,    ⠭    ॣ    
                 㤮⢮ ᫥騬 ᢮⢠:
       ᥫ    ࠭  ⠡
           ਯ஢;
       AR     ᥣ , 㯭 
           ,   ᥣ, 㯭  ⥭;
      IF  ᥣ   -ଭ  ᥣ,
      THEN DPL   > CPL,  DPL   < RPL;
  OD;

 ᠭ
 ० ॠ ᮢ  IRET   ⥪ 㪠⥫ , ॣ CS  䫠 ॣ, ᫥ 祣  믮 ࢠ ணࠬ.
 饭 ० ⢨  IRET   ⠭ 䫠   (NT)  ॣ 䫠.  祭  ⥪  ࠧ 䫠  IOPL 䫠 ॣ  ⮫쪮  CPL ࠢ 0.
᫨ 䫠 NT 饭,  IRET 頥  楤 뢠  ४祭 . ,   ந室 ,   ࠢ   ਢ஢, 祬 ணࠬ 뢠 ( 㪠뢠  RPL ᥫ CS,   ⥪). ᫨  祭  ਢ஢,   IRET ⠪   ⥪ 㪠⥫ ⥪  SS.
᫨ 䫠 NT ⠭,   IRET 믮  ⭮ ᫥⥫쭮 ⭮⥫쭮  CALL  INT, 맢 ४祭 .  ﭨ , 믮饩  IRET, ࠭   ᥣ ﭨ  (TSS).  ୮ 室   ᫥⢨ 믮 ,  ᫥   IRET.
塞 䫠
  䫠; ॣ 䫠   ⥪.
᪫祭 饭 ०
#GP, #NP  #SS,  㪠   ࠧ " ".
᪫祭 ० ॠ ᮢ
뢠 13, ᫨ -    ⥪ ࠭   ᮬ 0FFFFH.
᪫祭 㠫쭮 ० 8086
 #GP(0), ᫨ IOPL  3,   .

Jcc - 室, ᫨ ᫮ 室 㤮⢮ 
-----------------------------------------------------------------
|            ᫮      ᠭ                      |
|樨              ⠪⮢                                 |
|                      横                                   |
|                                                               |
|77 cb     JA rel8     3,1       室 ⪨, ᫨     |
|                                (CF = 0  ZF = 0)              |
|73 cb    JAE rel8     3,1       室 ⪨, ᫨     |
|                                 ࠢ (CF = 0)             |
|72 cb     JB rel8     3,1       室 ⪨, ᫨     |
|                                (CF = 1)                       |
|76 cb    JBE rel8     3,1       室 ⪨, ᫨     |
|                                 ࠢ (CF = 1  ZF = 1)  |
|72 cb     JC rel8     3,1       室 ⪨, ᫨ ७ |
|                                (CF = 1)                       |
|E3 cb   JCXZ rel8     8,5       室 ⪨, ᫨ ॣ |
|                                CX ࠢ 0                     |
|E3 cb  JECXZ rel8     8,5       室 ⪨, ᫨ ॣ |
|                                ECX ࠢ 0                    |
|74 cb     JE rel8     3,1       室 ⪨, ᫨ ࠢ   |
|                                (ZF = 1)                       |
|74 cb     JZ rel8     3,1       室 ⪨, ᫨ 0       |
|                                (ZF = 1)                       |
|7F cb     JG rel8     3,1       室 ⪨, ᫨   |
|                                (ZF = 0  SF = OF)             |
|7D cb    JGE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (SF = OF)            |
|7C cb     JL rel8     3,1       室 ⪨, ᫨   |
|                                (SF <> OF)                     |
|7E cb    JLE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (ZF=1  SF <> OF)  |
|76 cb    JNA rel8     3,1       室 ⪨, ᫨   |
|                                (CF = 1  ZF = 1)              |
|72 cb   JNAE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (CF = 1)             |
|73 cb    JNB rel8     3,1       室 ⪨, ᫨   |
|                                (CF = 0)                       |
|77 cb   JNBE rel8     3,1       室 ⪨, ᫨   |
|                                 ࠢ (CF=0  ZF=0)        |
|73 cb    JNC rel8     3,1       室 ⪨, ᫨      |
|                                ७ (CF = 0)              |
|75 cb    JNE rel8     3,1       室 ⪨, ᫨  ࠢ|
|                                (ZF = 0)                       |
|7E cb    JNG rel8     3,1       室 ⪨, ᫨       |
|                                 (ZF = 1  SF <> OF)   |
|7C cb   JNGE rel8     3,1       室 ⪨, ᫨       |
|                                  ࠢ (SF <> OF)    |
|7D cb    JNL rel8     3,1       室 ⪨, ᫨       |
|                                 (SF = OF)               |
|7F cb   JNLE rel8     3,1       室 ⪨, ᫨  -|
|                                  ࠢ (ZF=0  SF=OF)    |
|71 cb    JNO rel8     3,1       室 ⪨, ᫨      |
|                                ९ (OF=0)            |
|7B cb    JNP rel8     3,1       室 ⪨, ᫨  -|
|                                ஫ ⭮ (PF = 0)        |
|79 cb    JNS rel8     3,1       室 ⪨, ᫨      |
|                                 (SF = 0)                 |
|75 cb    JNZ rel8     3,1       室 ⪨, ᫨  |
|                                (ZF = 0)                       |
|70 cb     JO rel8     3,1       室 ⪨, ᫨         |
|                                ९ (OF = 1)          |
|7A cb     JP rel8     3,1       室 ⪨, ᫨ ஫|
|                                ⭮ (PF = 1)              |
|7A cb    JPE rel8     3,1       室 ⪨, ᫨ ஫|
|                                 ஢ ⭮ (PF = 1)  |
|7B cb    JPO rel8     3,1       室 ⪨, ᫨ ஫|
|                                 ஢ ⭮ (PF = 0)|
|78 cb     JS rel8     3,1       室 ⪨, ᫨     |
|                                (SF = 1)                       |
|74 cb     JZ rel8     3,1       室 ⪨, ᫨     |
|                                (ZF = 1)                       |
|0F 87 cw/dw   JA rel16/32  3,1  室 , ᫨      |
|                                (CF = 0  ZF = 0)              |
|0F 83 cw/dw  JAE rel16/32  3,1  室 , ᫨      |
|                                 ࠢ (CF = 0)             |
|0F 82 cw/dw   JB rel16/32  3,1  室 , ᫨      |
|                                (CF = 1)                       |
|0F 86 cw/dw  JBE rel16/32  3,1  室 , ᫨      |
|                                 ࠢ (CF = 1  ZF = 1)  |
|0F 82 cw/dw   JC rel16/32  3,1  室 , ᫨ ७  |
|                                (CF = 1)                       |
|0F 84 cw/dw   JE rel16/32  3,1  室 , ᫨ ࠢ    |
|                                (ZF = 1)                       |
|0F 84 cw/dw   JZ rel16/32  3,1  室 , ᫨ 0        |
|                                (ZF = 1)                       |
|0F 8F cw/dw   JG rel16/32  3,1  室 , ᫨    |
|                                (ZF = 0  SF = OF)             |
|0F 8D cw/dw  JGE rel16/32  3,1  室 , ᫨    |
|                                 ࠢ (SF = OF)            |
|0F 8C cw/dw   JL rel16/32  3,1  室 , ᫨    |
|                                (SF <> OF)                     |
|0F 8E cw/dw  JLE rel16/32  3,1  室 , ᫨    |
|                                 ࠢ (ZF=1  SF <> OF)  |
|0F 86 cw/dw  JNA rel16/32  3,1  室 , ᫨    |
|                                (CF = 1  ZF = 1)              |
|0F 82 cw/dw JNAE rel16/32  3,1  室 ⪨, ᫨   |
|                                 ࠢ (CF = 1)             |
|0F 83 cw/dw  JNB rel16/32  3,1  室 , ᫨    |
|                                (CF = 0)                       |
|0F 87 cw/dw JNBE rel16/32  3,1  室 , ᫨    |
|                                 ࠢ (CF=0  ZF=0)        |
|0F 83 cw/dw  JNC rel16/32  3,1  室 , ᫨       |
|                                ७ (CF = 0)              |
|0F 85 cw/dw  JNE rel16/32  3,1  室 , ᫨  ࠢ |
|                                (ZF = 0)                       |
|0F 8E cw/dw  JNG rel16/32  3,1  室 , ᫨        |
|                                 (ZF = 1  SF <> OF)   |
|0F 8C cw/dw JNGE rel16/32  3,1  室 , ᫨        |
|                                  ࠢ (SF <> OF)    |
|0F 8D cw/dw  JNL rel16/32  3,1  室 , ᫨        |
|                                 (SF = OF)               |
|0F 8F cw/dw JNLE rel16/32  3,1  室 , ᫨  - |
|                                  ࠢ (ZF=0  SF=OF)    |
|0F 81 cw/dw  JNO rel16/32  3,1  室 , ᫨       |
|                                ९ (OF=0)            |
|0F 8B cw/dw  JNP rel16/32  3,1  室 , ᫨  - |
|                                ஫ ⭮ (PF = 0)        |
|0F 89 cw/dw  JNS rel16/32  3,1  室 , ᫨       |
|                                 (SF = 0)                 |
|0F 85 cw/dw  JNZ rel16/32  3,1  室 , ᫨   |
|                                (ZF = 0)                       |
|0F 80 cw/dw   JO rel16/32  3,1  室 , ᫨          |
|                                ९ (OF = 1)          |
|0F 8A cw/dw   JP rel16/32  3,1  室 , ᫨ ஫ |
|                                ⭮ (PF = 1)              |
|0F 8A cw/dw  JPE rel16/32  3,1  室 , ᫨ ஫ |
|                                 ஢ ⭮ (PF = 1)  |
|0F 8B cw/dw  JPO rel16/32  3,1  室 , ᫨ ஫ |
|                                 ஢ ⭮ (PF = 0)|
|0F 88 cw/dw   JS rel16/32  3,1  室 , ᫨      |
|                                (SF = 1)                       |
|0F 84 cw/dw   JZ rel16/32  3,1  室 , ᫨      |
|                                (ZF = 1)                       |
-----------------------------------------------------------------

ਬ砭: ࢮ ᫮ ⠪⮢ 横 ⭮  ,  ᫮ 室 믮 (室 ந室); ஥ 祭 ⭮  ,  ᫮  믮 ( 室  ந室). rel16/32 㪠뢠,    ⮡ࠦ   :   16-ࠧ來 ⭮⥫ ᬥ饭,    32-ࠧ來 ⭮⥫ ᬥ饭,  ᨬ  ਡ ࠧ ࠭  .
  

IF ᫮
THEN
  EIP <- EIP + SignExtend(rel8/16/32);
  IF OperandSize = 16
  THEN EIP <- EIP AND 0000FFFFH;
  FI;
FI;


ᠭ
 ᫮ 室 ( ᪫祭  JCXZ) ஢ 䫠,  뫨 ⠭ ।饩 . ᫮   ᪮     㣫 ᪮  ᫥  ᠭ. ନ ""  "" ᯮ  ࠢ 楫  ; ""  "" -  楫  .
᫨ ᫮ 믮,  ந室 室  ,  ࠭. ᯮ짮    䥪⨢,  楫 ᫮ 室 室  ⥪饬  ᥣ   ।  -128  +127 ⮢ ⭮⥫쭮 ࢮ  ᫥饩 .
 室 ⠪  室  ।  -32768  +32767 (ਡ ࠧ ᥣ 16)   -2**31  +2**31-1 (ਡ ࠧ ᥣ 32) ⭮⥫쭮 ࢮ  ᫥饩 . ᫨ 楫  ᫮ 室 室  㣮 ᥣ, ᯮ   ⨢ ᫮ 室,  ""  쭥 ᫮ 室  㣮 ᥣ. ਬ,    : 
     JZ FARLABEL;

      ⮣ :

     JNZ BEYOND;
     JMP FARLABEL;
BEYOND:

᪮  ⢮ ᪮쪮 ᯮᮡ 樨 ⭮ ﭨ 䫠, ASM386 ᯥ稢   ᪮   設⢠  樨 ᫮ 室. ਬ, ᫨  ࠢ  ᨬ  AX   믮 室, ᫨  ࠢ, ᯮ  JE, , ᫨  믮    ॣ AX  ᪮, ᠭ  ⮢ ,  , ⮡ 室 ந室 ⮫쪮  १, ࠢ 0, ᯮ  JZ,   ᨭ  JE.
 JCXZ ⫨砥  㣨  ᫮ 室 ⥬,   ஢  䫠,  ᮤন ॣ஢ CX  ECX  ࠢ⢮ 0.  JCXZ   砫 ᫮ 横,  稢  ᫮ 室  砫 横 (ਬ, LOOPNE ⪠ 楫).  JCXZ ।頥 宦  横  ॣ CX  ECX, ࠢ ,   ਢ  믮 横 64  32 ࠧ   ࠧ.
塞 䫠

᪫祭 饭 ०
#GP (0), ᫨ ᬥ饭,  ஥  室,   ࠭  ᥣ.
᪫祭 ० ॠ ᮢ

᪫祭 㠫쭮 ० 8086

ਬ砭
 JCXZ 믮 , 祬 ᫥⥫쭮   , ࠢ ॣ-稪  㫥  믮 室  砥 ࠢ⢠.
  ⢫ ८ࠧ  롮ન  16-ࠧ來 , ᨬ   室   ஢. 

JMP - 室

-----------------------------------------------------------------
|            ᫮      ᠭ                      |
|樨              ⠪⮢                                 |
|                      横                                   |
|EB cb     JMP rel8      3        室 ⪨              |
|E9 cw     JMP rel16     3        室 , ᬥ饭     |
|                                 ⭮⥫쭮 ᫥饩 |
|FF /4     JMP r/m16     5/5      室  ᢥ     |
|EA cd     JMP ptr16:16 17,pm=19  室 ᥣ, 4-- |
|                                 ⮢ ।⢥   |
|EA cd     JMP ptr16:16  32       室   맮,   |
|                                 ਢ஢           |
|EA cd     JMP ptr16:16  42+TS    室 १ ᥣ - |
|                                                      |
|EA cd     JMP ptr16:16  42+TS    室 १       |
|FF/5d     JMP m16:16   13,pm=18  室 r/m16:16 ᢥ   |
|                                 ᥣ                 |
|FF /5     JMP m16:16    3        室   맮,   |
|                                 ਢ஢           |
|FF /5     JMP m16:16    41+TS    室 १ ᥣ - |
|                                                      |
|FF /5     JMP m16:16    42+TS    室 १       |
|E9 cd     JMP rel32     3        室 , ᬥ饭     |
|                                 ⭮⥫쭮 ᫥饩 |
|FF /4     JMP r/m32     5/5      室  ᢥ     |
|EA cp     JMP ptr16:32 13,pm=18  室 ᥣ, 6-- |
|                                 ⮢ ।⢥   |
|EA cp     JMP ptr16:32  31       室   맮,   |
|                                 ਢ஢           |
|EA cp     JMP ptr16:32  42+TS    室 १ ᥣ - |
|                                                      |
|EA cp     JMP ptr16:32  43+TS    室 १       |
|FF /5     JMP m16:32   13,pm=18  室 ᥣ,   |
|                                   ᫮ r/m           |
|FF /5     JMP m16:32    31       室   맮,   |
|                                 ਢ஢           |
|FF /5     JMP m16:32    41+TS    室 १ ᥣ - |
|                                                      |
|FF /5     JMP m16:32    42+TS    室 १       |
-----------------------------------------------------------------

ਬ砭: 祭 ts  ᫥饩 ⠡楩:

-----------------------------------------------------------------
                     |           
         |-------------------------------------------
                     |  TSS i486 |  TSS 80286 |  TSS VM
-----------------------------------------------------------------
 VM/i486/TSS 80286   |     199    |     180     |     177
-----------------------------------------------------------------

 

IF  = ⭮⥫ 室 JMP
  (* .. ࠭  rel8, rel16  rel32 *)
THEN
  EIP <- EUP + rel8/16/32;
  IF OperandSize = 16
  THEN EIP <- EIP AND 0000FFFFH;
  FI;
FI;

IF  =  ᢥ 室 JMP
  (* .. ࠭  r/m16  r/m32 *)
THEN
  IF OperandSize = 16
  THEN
    EIP <- [r/m16 AND 0000FFFFH;
  ELSE (* OperandSize = 32 *)
    EIP <- [r/m32;
  FI;
FI;


IF (PE = 0 OR (PE = 1 AND VM = 1))
(* ० ॠ ᮢ  㠫 ० 8086 *)
  AND  = 쭨 JMP
  (* .. ⨯ ࠭ ࠢ m16:16, m16:32, ptr16:16, ptr16:32 *)
THEN GOTO ----V86
  IF ⨯ ࠭ = m16:16  m16:32
  THEN (* ᢥ *)
    IF OperandSize = 16
    THEN
      CS:IP <- [m16:16;
      EIP <- EIP AND 0000FFFFH: (* ⪠  16 ⮢ *)
    ELSE (* OperanfSize = 32 *)
      CS:EIP <- [m16:32;
    FI;
  FI;
  IF ⨯ ࠭ = ptr16:16  ptr16:32
  THEN
    IF OperandSize = 16
    THEN
      CS:IP <- ptr16:16;
      EIP <- EIP AND 0000FFFFH: (* ⪠  16 ⮢ *)
    ELSE (* OperanfSize = 32 *)
      CS:EIP <- ptrm16:32;
    FI;
  FI;
FI;


IF (PE = 1 AND VM = 0) (* 饭 ०,   ० V86 *)
  AND  = 쭨 JMP
THEN
  IF ⨯ ࠭ = m16  m16:32
  THEN (* ᢥ *)
    ஢    ᫮ EA;
    #GP(0)  #SS(0) IF 襭 ࠭;
  FI;
   祭    , ELSE #GP(0);
   ᥫ 祭    ।
    ࠭ ਯ୮ ⠡; ELSE #GP(ᥫ)
   ᨬ   AR ਯ 祭:
    GOTO      --;
    GOTO      --;
    GOTO      -;
    GOTO      -;
    GOTO      --;
  ELSE #GP(ᥫ); (* ⨬  AR  ਯ *)
FI;


--:
  DPL ਯ   <= CPL  ELSE  #GP(ᥫ);
      ⢮   ELSE  #NP  (ᥫ);
  ⥫     ࠭  ᥣ ELSE
                                                #GP(0);
  IF OperandSize = 16
  THEN  㧨 CS:EIP  㪠⥫ 祭;
  ELSE  㧨 CS:IP   㪠⥫ 祭;
  FI;
  㧨 ॣ CS  ਯ஬ ᥣ;

--:
  RPL ᥫ 祭   <= CPL ELSE #GP(ᥫ);
  DPL ਯ   = CPL  ELSE  #GP(ᥫ);
      ⢮   ELSE  #NP  (ᥫ);
  ⥫     ࠭  ᥣ ELSE
                                                #GP(0);
  IF OperandSize = 32
  THEN  㧨 CS:EIP  㪠⥫ 祭;
  ELSE  㧨 CS:IP   㪠⥫ 祭;
  FI;
  㧨 ॣ CS  ਯ஬ ᥣ;
  ⠭  RPL  CS ࠢ CPL;

-:
  DPL ਯ   >= CPL  ELSE  #GP(ᥫ );
  DPL ਯ   >= RPL ᥫ  ELSE
                  #GP(ᥫ );
    ⢮    ELSE  #NP(ᥫ );
  ᬮਬ ᥫ  ᥣ  ਯ 
                                                 맮:
         ELSE #GP(0)
        । ࠭  ਯ୮
      ⠡ ELSE #GP(ᥫ CS)
     AR ࠭ ਯ   
      ᥣ ELSE #GP (ᥫ CS)
    IF -ଭ
    THEN DPL ਯ  ᥣ   = CPL
    ELSE #GP(ᥫ CS);
    FI;
    IF ଭ
    THEN DPL ਯ  ᥣ   <= CPL;
    ELSE #GP(ᥫ CS);
     ᥣ  ⢮ ELSE #NP(ᥫ CS);
    ⥫     ࠭  ᥣ ELSE
                                                #GP(0);
    IF OperandSize = 32
    THEN  㧨 CS:EIP   맮;
    ELSE  㧨 CS:IP    맮;
    FI;
  㧨 ॣ CS  ਯ஬  ᥣ;
  ⠭  RPL  CS ࠢ CPL;


-:
  DPL ਯ    >= CPL ELSE #TS(ᥫ )
  DPL ਯ    >= RPL ᥫ  ELSE
            #GP(ᥫ )
     ⢮ ELSE #NP(ᥫ )
  ᫥ ᥫ TSS,   ਯ  :
        /  
      ELSE #GP(ᥫ TSS)
      室  । ࠭ GDT
      ELSE #GP(ᥫ TSS)
     AR   ਯ   TSS      㯭  TSS
              (訥  00001);
      ELSE #GP(ᥫ TSS)
     ﭨ  (TSS)  ⢮
      ELSE #NP(ᥫ TSS)
  - ( )  TSS
  ⥫   室  ࠭  ᥣ
      ELSE #GP(0)

--:
  DPL  TSS   >= CPL ELSE #GP(ᥫ TSS)
  DPL  TSS   >= RPL ᥫ TSS
     ELSE #GP(ᥫ TSS)
   AR ਯ   㯭 TSS (訥 
      00001) ELSE #GP(ᥫ TSS)
   ﭨ  (TSS)  ⢮
      ELSE #NP(ᥫ TSS)
  - ( )  TSS
  ⥫    室  ࠭  ᥣ
      ELSE #GP(0);

ᠭ
 JMP । ࠢ    ⮪ ,  뢠 ଠ樨  믮 .
 ᠭ ⢨  ࠧ  .
 室  ⨯ 祭 r/m16m, r/m32  r/m32 믮  室     祭 ᥣ⭮ ॣ.
  室 JMP rel16  JMP rel32 ᪫뢠 ᬥ饭  ᮬ , ᫥饩  JMP, ⮡ । 祭 . ଠ  rel16 ᯮ,  ਡ ࠧ ࠭  ࠢ 16 ⠬ (⮫쪮 ਡ ࠧ ᥣ 16); ଠ  rel32 ᯮ,  ਡ ࠧ ࠭  ࠢ 32 ⠬ (⮫쪮 ਡ ࠧ ᥣ 32).  ࠭  32-ࠧ來 ॣ EIP.  砥 rel16 訥 16 ⮢ ॣ EIP ,  ⠪ ࠧ, 砥 ᬥ饭, ࠧ ண  ॢ蠥 16 ⮢.
 JMP r/m16  JMP r/m32  ॣ   ,  ண 롨ࠥ ᮫⭮ ᬥ饭  楤. ࠭  r/m ᬥ饭 ࠢ 32 ⠬  ਡ ࠧ ࠭, ࠢ 32 ⠬ (r/m32),  16 ⠬  ਡ ࠧ ࠭, ࠢ 16 ⠬ (r/m16).
  JMP ptr16:16  ptr16:32 ᯮ 娫 -⮢ ࠭  ⢥  㪠⥫  祭.  JMP m16:16  m16:32 롨 쭨 㪠⥫     (ᢥ 饭).  ० ॠ ᮢ  㠫쭮 ० 8086  㪠⥫ ᯥ稢 16 ⮢  ॣ CS  16  32   ॣ EIP ( ᨬ  ਡ ࠧ ࠭).  饭 ०    묨 㪠⥫ﬨ ஢  ࠢ 㯠 (AR)  ਯ, 㥬 ᥫ୮   㪠⥫.  ᨬ  祭  AR 室 㤥 ⢫   ᫥ ⨯ । ࠢ:
- 室   ᥣ  ⮬  ஢ ਢ஢.
- ४祭 .
 ஡ ଠ  । ࠢ  饭 ० 室   6  7.
塞 䫠
 ४祭    䫠; ᫨  ४祭   ந室,  䫠  .
᪫祭 饭 ०
 쭨 室: #GP, #NP, #SS  #TS,  㪠 .
   室: #GP(0), ᫨ 楤 室  । ࠭  ᥣ; #AC  ࠢ 뫪    ⥪饬 ஢ ਢ஢, ࠢ 3. 

  ᢥ 室: #GP(0)  砥 ⨬ ᯮ⥫쭮  ࠭   ᥣ CS, DS, ES, FS  GS; #SS(0)  砥 ⨬   ᥣ SS; # GP, ᫨ 祭 ᢥ ᬥ饭   ࠭栬  ᥣ; #PF( ᡮ)  砥 ࠭筮 ᡮ; #AC  ࠢ 뫪    ⥪饬 ஢ ਢ஢, ࠢ 3.
᪫祭 ० ॠ ᮢ
뢠 13, ᫨ -  ࠭   ࠭⢠ ᯮ⥫ ᮢ  0  0FFFFH.
᪫祭 㠫쭮 ० 8086
  ᪫祭,    ० ॠ ᮢ: #PF ( ᡮ)  ࠭ ᡮ; #AC  ࠢ 뫪    ⥪饬 ஢ ਢ஢, ࠢ 3.
ਬ砭
  ⢫ ८ࠧ  롮ન  16-⮢ , ᨬ   室   ஢. 

LAHF - 㧪 䫠  ॣ AH

-----------------------------------------------------------------
|         ᫮      ᠭ                         |
|樨           ⠪⮢                                    |
|                   横                                      |
|                                                               |
|9F        LAHF       3        㧪: AH = 䫠             |
|                              SF ZF xx AF xx PF xx CF          |
-----------------------------------------------------------------

 

AH <- SF:ZF:xx:AF:xx:PF:xx:CF;

ᠭ
 LAHF 뫠 訩  ᫮ 䫠  ॣ AH. ,  MSB  LSB,   , , ।, ᯮ⥫, ।, ஫ ⭮, ।  ७.
塞 䫠

᪫祭 饭 ०

᪫祭 ० ॠ ᮢ

᪫祭 㠫쭮 ० 8086
 

LAR  - 㧪  ࠢ 㯠

-----------------------------------------------------------------
|               ᫮      ᠭ                   |
|樨                 ⠪⮢                              |
|                         横                                |
|                                                               |
|0F 02 /r  LAR r16,r/m16   11/11   r16 <- r/m16 ᪨ FF00|
|0F 02 /r  LAR r32,r/m32   11/11   r32 <- r/m32 ᪨     |
|                                               00FxFF00        |
-----------------------------------------------------------------


ᠭ
 LAR ࠭ ⬥祭  ண  ᫮ ਯ  ⢥ 室 ᥫ, ᫨ ᥫ   ⥪饬 ஢ ਢ஢ (஢ RPL ᥫ)  ᮤন ⨬ ⨯ ਯ  ࠭ ਯ.  祭 㦠 訬  ᫮ ਯ, ᪨㥬 祭 00FxFF00,  ⠭ 䫠 ZF. x 㪠뢠  ,   , ᮮ⢥騥 訬 ६ ⠬ ࠭,  祭, 㦠  LAR, ।. ᫨ ᥫ     ⨯,  䫠 ZF 頥.
᫨  32-ࠧ來 ࠧ ࠭,   32-ࠧ來 祭 楫 㦠  32-ࠧ來 ॣ 祭. ᫨  16-ࠧ來 ࠧ ࠭,  訥 16 ⮢ ⮣ 祭 㦠  16-ࠧ來 ॣ 祭.
⨬묨   LAR   ਯ  ᥣ⮢  ᥣ⮢ .
⨬ ⨯ ਯ஢ ᯥ樠 ᥣ⮢     LAR ਢ  ᫥饩 ⠡: 

                                    ⨬/⨬
-----------------------------------------------------------------
   0      ⨬                           ⨬
   1      㯭 TSS 80286                   ⨬
   2      LDT                                   ⨬
   3       TSS 80286                     ⨬
   4       맮 80286                     ⨬
   5        80286/i486                ⨬
   6       誨 80286                    ⨬
   7       뢠 80286                 ⨬
   8      ⨬                           ⨬
   9      㯭 TSS i486                    ⨬
   A      ⨬                           ⨬
   B       TSS i486                      ⨬
   C       맮 i486                      ⨬
   D      ⨬                           ⨬
   E       誨 i486                     ⨬
   F       뢠 i486                  ⨬
-----------------------------------------------------------------


塞 䫠
 ZF ⠭, ᫨ ⮫쪮 ᥫ     ⨬ ⨯,  䫠 ZF 頥.
᪫祭 饭 ०
#GP(0)  砥 ⨬ ᯮ⥫쭮  ࠭   ᥣ CS, DS, ES, FS  GS; #SS(0)  砥 ⨬   ᥣ SS; #PF( ᡮ)  砥 ࠭筮 ᡮ; #AC  ࠢ 뫪    ⥪饬 ஢ ਢ஢, ࠢ 3.
᪫祭 ० ॠ ᮢ
뢠 6;  LAR  ० ॠ ᮢ  ᯮ.
᪫祭 㠫쭮 ० 8086
  ᪫祭,    ० ॠ ᮢ.

