Public Enum x86_16_精簡
x86_16_精簡_無效 = 0
'
'前綴
前綴_鎖總線 '1111 0000 'F0 F0H—LOCK.
前綴_重複非零 'F2H—REPNE/REPNZ (used only with string instructions).
前綴_重複不等 '1111 0010 'F2H—REPNE/REPNZ (used only with string instructions).
前綴_重複零 'F3H—REPE/REPZ (use only with string instructions).
前綴_重複相等 '1111 0011'F3H—REPE/REPZ (use only with string instructions). cmps串比較
'REPNE/REPNZ prefix is encoded using F2H. Repeat-Not-Zero prefix
'applies only to string and input/output instructions. (F2H is also used as a
'mandatory prefix for some instructions)
' 前綴_重複不等 用於串比較,串比較讀取,串寫入,輸入輸出串。 (MOVS, CMPS, SCAS, LODS, STOS, INS, and OUTS)
前綴_重複 '1111 0011'F3H—REP (use only with string instructions). movs串賦值
'REP or REPE/REPZ is encoded using F3H. Repeat prefix applies only to
'string and input/output instructions.(F3H is also used as a mandatory
'prefix for some instructions)
'Some instructions may use F2H,F3H as a mandatory prefix to express distinct func-
'tionality. A mandatory prefix generally should be placed after other optional prefixes
'(exception to this is discussed in Section 2.2.1, “REX Prefixes”)
前綴_尋址以_代碼段 '0010 1110'2EH—CS segment override (use with any branch instruction is reserved).
前綴_尋址以_數據段 '3EH—DS segment override prefix (use with any branch instruction is reserved).
前綴_尋址以_的址段 '26H—ES segment override prefix (use with any branch instruction is reserved).
前綴_尋址以_堆棧段 '36H—SS segment override prefix (use with any branch instruction is reserved).
前綴_尋址以_FS段 '64H—FS segment override prefix (use with any branch instruction is reserved).
前綴_尋址以_GS段 '65H—GS segment override prefix (use with any branch instruction is reserved).
前綴_Branch_not_taken '2EH—Branch not taken (used only with Jcc instructions).
前綴_Branch_taken '3EH—Branch taken (used only with Jcc instructions).
'64位模式中cs,ds,es,ss禁用全部清零。fs gs例外、
前綴_更改_數據長度 '66H—Operand-size override prefix. '改為 非默認長度,32位機非默認長度是16位
'Operand-size override prefix is encoded using 66H (66H is also used as a
'mandatory prefix for some instructions).
前綴_更改_尋址長度 '67H—Address-size override prefix. '32位指令
前綴_64位擴展 '40--4f 0100wrxb
十調_字符加後 '37 無前綴 AAA A (64-bit Mode Invalid) Valid ASCII adjust AL after addition
' AF and CF , #UD If the LOCK prefix is used. ‘ #UD If in 64-bit mode.
十調_字符除前 'D5 0A 無前綴 AAD A Invalid Valid ASCII adjust AX before division
' D5 ib (No mnemonic) A Invalid Valid Adjust AX before division to number base imm8.
' The SF, ZF, and PF flags are set according to the resulting binary value in the AL
' register; the OF, AF, and CF flags are undefined.
十調_字符乘後 ' D4 0A 無前綴 AAM A Invalid Valid ASCII adjust AX after multiply.
十調_字符減前 '3F 無前綴 AAS A Invalid Valid ASCII adjust AL after subtraction.
數學_加進 ' 前綴lock ADC—Add with Carry
數學_加 '04
'數學_加組合64x2 'SSE2 '66 0F 58 /r ADDPD xmm1, xmm2/m128 Add packed double-precision floating-point values from xmm2/m128 to xmm1.
'數學_加組合32x4 'SSE '0F 58
數學_與 'AND
提升特權級 '63 /r ARPL r/m16, r16 AN. E. Valid Adjust RPL of r/m16 to not less than RPL of r16.
邊界 '62 /r BOUND r16, m16&16 Check if r16 (array index) is within bounds specified bym16&16
' 62 /r BOUND r32, m32&32 Check if r32 (array index) is within bounds specified bym16&16
數位掃描右起 '0F BC BSF r16,r/m16 Bit scan forward on r/m16
' 0F BC BSF r32,r/m32 Bit scan forward on r/m32
數位掃描左起 '0F BD BSR r16,r/m16 Bit scan reverse on r/m16
翻轉字節序 '0F C8+rd BSWAP r32 Reverses the byte order of a 32-bit register.
數位測試 '基地址,偏移量 '0F A3 BT r/m16,r16 Store selected bit in CF flag
' 0F A3 BT r/m32,r32 Store selected bit in CF flag
' 0F BA /4 ib BT r/m16,imm8 Store selected bit in CF flag
' 0F BA /4 ib BT r/m32,imm8 Store selected bit in CF flag
數位取反
'0F BB BTC r/m16,r16 Store selected bit in CF flag and complement
'0F BB BTC r/m32,r32 Store selected bit in CF flag and complement
'0F BA /7 ib BTC r/m16,imm8 Store selected bit in CF flag and complement
'0F BA /7 ib BTC r/m32,imm8 Store selected bit in CF flag and complement
數位清零
'0F B3 BTR r/m16,r16 Store selected bit in CF flag and clear
'0F B3 BTR r/m32,r32 Store selected bit in CF flag and clear
'0F BA /6 ib BTR r/m16,imm8 Store selected bit in CF flag and clear
'0F BA /6 ib BTR r/m32,imm8 Store selected bit in CF flag and clear
數位置一
'0F AB BTS r/m16,r16 Store selected bit in CF flag and set
'0F AB BTS r/m32,r32 Store selected bit in CF flag and set
'0F BA /5 ib BTS r/m16,imm8 Store selected bit in CF flag and set
'0F BA /5 ib BTS r/m32,imm8 Store selected bit in CF flag and set
調用_相對
'E8 cw CALL rel16 Call near, relative, displacement relative to next instruction
'E8 cd CALL rel32 Call near, relative, displacement relative to next instruction
調用_絕對
'FF /2 CALL r/m16 Call near, absolute indirect, address given in r/m16
'FF /2 CALL r/m32 Call near, absolute indirect, address given in r/m32
調用_遠程
'9A cd CALL ptr16:16 Call far, absolute, address given in operand
'9A cp CALL ptr16:32 Call far, absolute, address given in operand
'FF /3 CALL m16:16 Call far, absolute indirect, address given in m16:16
'FF /3 CALL m16:32 Call far, absolute indirect, address given in m16:32
符擴8為16
'98 CBW AX ← sign-extend of AL
符擴16為32
'98 CWDE EAX ← sign-extend of AX
符擴32為64
標誌_進借位_清零
'F8 CLC Clear CF flag
標誌_方向_正方向
'FC CLD Clear DF flag
系統_使緩存無效
'0F AE /7 CLFLUSH m8 Flushes cache line containing m8.
系統_禁止中斷
'FA CLI Clear interrupt flag; interrupts disabled when interrupt flag cleared
系統_協上下文_不需保存
'0F 06 CLTS Clears TS flag in CR0
標誌_進位_取反
'F5 CMC Complement CF flag
條件賦值 'x86標誌條件
比較
串比較8 'a6
串比較16 'a7
串比較32
比較交換 'CMPXCHG al,rm,r 若al=rm則rm:=r(讓他不等), 若al<>rm則al:=rm(讓他相等)
比較交換組合 'CMPXCHG8B 'CMPXCHG EDX:EAX,rm,ECX:EBX
x86_16_精簡_上限
End Enum |