中文内核操作系统吧 关注:52贴子:635
  • 6回复贴,共1

指令编码精要

只看楼主收藏回复

64-Bit Mode
32bit默认地址尺寸(Bits)
效果操作尺寸(Bits)
64 不在乎
32 不加前缀
16 66h
64 REX.W3
32 不加前缀
16 不加前缀
64-Bit Mode
64bit默认地址尺寸(Bits)
效果操作尺寸(Bits)
64 不加前缀
32 67h


IP属地:江西1楼2016-11-05 20:04回复
    硬盘跟内存顺序一致
    跟指令编码相反


    IP属地:江西2楼2016-11-05 20:04
    回复
      REX Prefix Format
      40-4F
      01000000
      4 WRXB
      40 无
      48 64bit
      44 REG扩展
      41 R/M扩展和操作码寄存器扩展
      4C 64bit/寄存器扩展
      49 64bit/R/M扩展和操作码寄存器扩展
      45 寄存器扩展/R/M扩展和操作码寄存器扩展
      4D 64bit/寄存器扩展/R/M扩展和操作码寄存器扩展


      IP属地:江西4楼2016-11-05 20:04
      回复
        ModRM
        6-7 mod
        3-5 reg
        0-2 r/m
        ModRM.mod (Bits[7:6])。
        Mod 字段与 r/m 字段用于指定操作数的寻址模式。
        ModRM.mod = 11b 指定寄存器直接寻址模式。
        在登记册直接模式中,操作数是举行在指定的寄存器中。
        ModRM.mod 值低于 11b 指定寄存器间接寻址模式。
        在寄存器间接 addresing 模式下,保存的寄存器和指令编码中指定可选的位移值用于计算基于内存操作数的地址。
        下面讨论的其他编码的 5 位 {mod,r/m}。
        ModRM.reg (Bits[5:3])。
        Reg 字段用来指定基于寄存器操作数,虽然一些说明,此字段用于扩展操作编码。
        此字段的编码显示在表 1-10 以下。
        ModRM.r/m (Bits[2:0])。
        如上文所述,r/m 字段用于 mod 字段结合编码 32 不同操作数规格 (见表 1-14 页 21)。
        此字段的编码显示在表 1-10 以下。


        IP属地:江西5楼2016-11-05 20:05
        回复
          REX.R BitModRM reg Field
          000001010011100101110111
          0ALCLDLBLAH/SPLCH/BPLDH/SILBH/DIL
          0AXCXDXBXSPBPSIDI
          0EAXECXEDXEBXESPEBPESIEDI
          0RAXRCXRDXRBXRSPRBPRSIRDI
          0MMX0MMX1MMX2MMX3MMX4MMX5MMX6MMX7
          0XMM0XMM1XMM2XMM3XMM4XMM5XMM6XMM7
          0YMM0YMM1YMM2YMM3YMM4YMM5YMM6YMM7
          0ESCSSSDSFSGSinvalidinvalid
          0CR0CR1CR2CR3CR4CR5CR6CR7
          0DR0DR1DR2DR3DR4DR5DR6DR7
          1R8BR9BR10BR11BR12BR13BR14BR15B
          1R8WR9WR10WR11WR12WR13WR14WR15W
          1R8DR9DR10DR11DR12DR13DR14DR15D
          1R8R9R10R11R12R13R14R15
          1MMX0MMX1MMX2MMX3MMX4MMX5MMX6MMX7
          1XMM8XMM9XMM10XMM11XMM12XMM13XMM14XMM15
          1YMM8YMM9YMM10YMM11YMM12YMM13YMM14YMM15
          1ESCSSSDSFSGSinvalidinvalid
          1CR8CR9CR10CR11CR12CR13CR14CR15
          1DR8DR9DR10DR11DR12DR13DR14DR15


          IP属地:江西7楼2016-11-05 20:05
          回复
            REX.B=0 REX.B=1 MODREGR/M
            REX.B=0 REX.B=1 MOD000001010011100101110111R/M
            [rAX][r8]000008101820283038000
            [rCX][r9]000109111921293139001
            [rDX][r10]00020A121A222A323A010
            [rBX][r11]00030B131B232B333B011
            SIB2SIB200040C141C242C343C100
            [rIP] + disp32 or disp323[rIP] + disp32 or disp32300050D151D252D353D101
            [rSI][r14]00060E161E262E363E110
            [rDI][r15]00070F171F272F373F111
            AL/rAX/MMX0/XMM0/YMM0r8/MMX0/XMM8/YMM811C0C8D0D8E0E8F0F8000
            CL/rCX/MMX1/XMM1/YMM1r9/MMX1/XMM9/YMM911C1C9D1D9E1E9F1F9001
            DL/rDX/MMX2/XMM2/YMM2r10/MMX2/XMM10/YMM1011C2CAD2DAE2EAF2FA010
            BL/rBX/MMX3/XMM3/YMM3r11/MMX3/XMM11/YMM1111C3CBD3DBE3EBF3FB011
            AH/SPL/rSP/MMX4 XMM4/YMM4r12/MMX4/XMM12/YMM1211C4CCD4DCE4ECF4FC100
            CH/BPL/rBP/MMX5/XMM5/YMM5r13/MMX5/XMM13/YMM1311C5CDD5DDE5EDF5FD101
            DH/SIL/rSI/MMX6/XMM6/YMM6r14/MMX6/XMM14/YMM1411C6CED6DEE6EEF6FE110
            BH/DIL/rDI/MMX7/XMM7/YMM7r15/MMX7/XMM15/YMM1511C7CFD7DFE7EFF7FF111


            IP属地:江西8楼2016-11-05 20:05
            回复
              MOV立即值
              B8 RAX R8
              B9 RCX R9
              BA RDX R10
              BB RBX R11
              BC RSP R12
              BD RBP R13
              BE RSI R14
              BF RDI R15


              IP属地:江西9楼2016-11-05 20:06
              回复