lib/metasm/ia32/opcodes.rb in metasm-1.0.0 vs lib/metasm/ia32/opcodes.rb in metasm-1.0.1
- old
+ new
@@ -9,18 +9,18 @@
module Metasm
class Ia32
def init_cpu_constants
@opcode_list ||= []
@fields_mask.update :w => 1, :s => 1, :d => 1, :modrm => 0xc7,
- :reg => 7, :eeec => 7, :eeed => 7, :seg2 => 3, :seg3 => 7,
+ :reg => 7, :eeec => 7, :eeed => 7, :eeet => 7, :seg2 => 3, :seg3 => 7,
:regfp => 7, :regmmx => 7, :regxmm => 7
@fields_mask[:seg2A] = @fields_mask[:seg2]
@fields_mask[:seg3A] = @fields_mask[:seg3]
@fields_mask[:modrmA] = @fields_mask[:modrm]
@valid_args.concat [:i, :i8, :u8, :u16, :reg, :seg2, :seg2A,
- :seg3, :seg3A, :eeec, :eeed, :modrm, :modrmA, :mrm_imm,
+ :seg3, :seg3A, :eeec, :eeed, :eeet, :modrm, :modrmA, :mrm_imm,
:farptr, :imm_val1, :imm_val3, :reg_cl, :reg_eax,
:reg_dx, :regfp, :regfp0, :modrmmmx, :regmmx,
:modrmxmm, :regxmm] - @valid_args
@valid_props.concat [:strop, :stropz, :opsz, :argsz, :setip,
@@ -175,9 +175,10 @@
addop 'lsl', [0x0F, 0x03], :mrm
addop 'lss', [0x0F, 0xB2], :mrmA
addop 'ltr', [0x0F, 0x00], 3
addop('mov', [0x0F, 0x20, 0xC0], :reg, {:d => [1, 1], :eeec => [2, 3]}, :eeec) { |op| op.args.reverse! }
addop('mov', [0x0F, 0x21, 0xC0], :reg, {:d => [1, 1], :eeed => [2, 3]}, :eeed) { |op| op.args.reverse! }
+ addop('mov', [0x0F, 0x24, 0xC0], :reg, {:d => [1, 1], :eeet => [2, 3]}, :eeet) { |op| op.args.reverse! }
addop('mov', [0x8C], 0, {:d => [0, 1], :seg3 => [1, 3]}, :seg3) { |op| op.args.reverse! }
addop 'out', [0xE6], nil, {:w => [0, 0]}, :u8, :reg_eax
addop 'out', [0xE6], nil, {:w => [0, 0]}, :reg_eax, :u8
addop 'out', [0xE6], nil, {:w => [0, 0]}, :u8
addop 'out', [0xEE], nil, {:w => [0, 0]}, :reg_dx, :reg_eax