C# 클래스 Reko.Arch.X86.OperandRewriter

Helper class used by the X86 rewriter to turn machine code operands into IL expressions.
파일 보기 프로젝트 열기: uxmal/reko 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
arch IntelArchitecture

공개 메소드들

메소드 설명
AddrOf ( Expression expr ) : UnaryExpression
AluRegister ( Reko.Core.Machine.RegisterOperand reg ) : Identifier
AluRegister ( RegisterStorage reg ) : Identifier
AluRegister ( RegisterStorage reg, PrimitiveType vt ) : Identifier
CreateConstant ( ImmediateOperand imm, PrimitiveType dataWidth ) : Constant
CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, DataType dt, Reko.Arch.X86.X86State state ) : Expression
CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand memoryOperand, Reko.Arch.X86.X86State state ) : Expression
EffectiveAddressExpression ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, Reko.Arch.X86.X86State state ) : Expression

Memory accesses are translated into expressions.

FlagGroup ( FlagM flags ) : Identifier
FpuRegister ( int reg, Reko.Arch.X86.X86State state ) : Identifier

Changes the stack-relative address 'reg' into a frame-relative operand. If the register number is larger than the stack depth, then the register was passed on the stack when the function was called.

ImmediateAsAddress ( Address address, ImmediateOperand imm ) : Address
ImportedGlobal ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Identifier
ImportedProcedure ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Reko.Core.ExternalProcedure
OperandRewriter ( IntelArchitecture arch, ExpressionEmitter emitter, Frame frame, IRewriterHost host ) : Reko.Core.Expressions
ReplaceCodeSegment ( RegisterStorage reg, Reko.Arch.X86.X86State state ) : Constant
StackAccess ( Expression expr, DataType dt ) : MemoryAccess
Transform ( Reko.Arch.X86.X86Instruction instr, MachineOperand op, PrimitiveType opWidth, Reko.Arch.X86.X86State state ) : Expression

메소드 상세

AddrOf() 공개 메소드

public AddrOf ( Expression expr ) : UnaryExpression
expr Expression
리턴 UnaryExpression

AluRegister() 공개 메소드

public AluRegister ( Reko.Core.Machine.RegisterOperand reg ) : Identifier
reg Reko.Core.Machine.RegisterOperand
리턴 Identifier

AluRegister() 공개 메소드

public AluRegister ( RegisterStorage reg ) : Identifier
reg RegisterStorage
리턴 Identifier

AluRegister() 공개 메소드

public AluRegister ( RegisterStorage reg, PrimitiveType vt ) : Identifier
reg RegisterStorage
vt PrimitiveType
리턴 Identifier

CreateConstant() 공개 메소드

public CreateConstant ( ImmediateOperand imm, PrimitiveType dataWidth ) : Constant
imm Reko.Core.Machine.ImmediateOperand
dataWidth PrimitiveType
리턴 Constant

CreateMemoryAccess() 공개 메소드

public CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, DataType dt, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
mem Reko.Arch.X86.MemoryOperand
dt DataType
state Reko.Arch.X86.X86State
리턴 Expression

CreateMemoryAccess() 공개 메소드

public CreateMemoryAccess ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand memoryOperand, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
memoryOperand Reko.Arch.X86.MemoryOperand
state Reko.Arch.X86.X86State
리턴 Expression

EffectiveAddressExpression() 공개 메소드

Memory accesses are translated into expressions.
public EffectiveAddressExpression ( Reko.Arch.X86.X86Instruction instr, Reko.Arch.X86.MemoryOperand mem, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
mem Reko.Arch.X86.MemoryOperand
state Reko.Arch.X86.X86State
리턴 Expression

FlagGroup() 공개 메소드

public FlagGroup ( FlagM flags ) : Identifier
flags FlagM
리턴 Identifier

FpuRegister() 공개 메소드

Changes the stack-relative address 'reg' into a frame-relative operand. If the register number is larger than the stack depth, then the register was passed on the stack when the function was called.
public FpuRegister ( int reg, Reko.Arch.X86.X86State state ) : Identifier
reg int
state Reko.Arch.X86.X86State
리턴 Identifier

ImmediateAsAddress() 공개 추상적인 메소드

public abstract ImmediateAsAddress ( Address address, ImmediateOperand imm ) : Address
address Address
imm Reko.Core.Machine.ImmediateOperand
리턴 Address

ImportedGlobal() 공개 메소드

public ImportedGlobal ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Identifier
addrInstruction Address
addrWidth PrimitiveType
mem Reko.Arch.X86.MemoryOperand
리턴 Identifier

ImportedProcedure() 공개 메소드

public ImportedProcedure ( Address addrInstruction, PrimitiveType addrWidth, Reko.Arch.X86.MemoryOperand mem ) : Reko.Core.ExternalProcedure
addrInstruction Address
addrWidth PrimitiveType
mem Reko.Arch.X86.MemoryOperand
리턴 Reko.Core.ExternalProcedure

OperandRewriter() 공개 메소드

public OperandRewriter ( IntelArchitecture arch, ExpressionEmitter emitter, Frame frame, IRewriterHost host ) : Reko.Core.Expressions
arch IntelArchitecture
emitter Reko.Core.Expressions.ExpressionEmitter
frame Reko.Core.Frame
host IRewriterHost
리턴 Reko.Core.Expressions

ReplaceCodeSegment() 공개 메소드

public ReplaceCodeSegment ( RegisterStorage reg, Reko.Arch.X86.X86State state ) : Constant
reg RegisterStorage
state Reko.Arch.X86.X86State
리턴 Constant

StackAccess() 공개 메소드

public StackAccess ( Expression expr, DataType dt ) : MemoryAccess
expr Expression
dt DataType
리턴 MemoryAccess

Transform() 공개 메소드

public Transform ( Reko.Arch.X86.X86Instruction instr, MachineOperand op, PrimitiveType opWidth, Reko.Arch.X86.X86State state ) : Expression
instr Reko.Arch.X86.X86Instruction
op Reko.Core.Machine.MachineOperand
opWidth PrimitiveType
state Reko.Arch.X86.X86State
리턴 Expression

프로퍼티 상세

arch 보호되어 있는 프로퍼티

protected IntelArchitecture,Reko.Arch.X86 arch
리턴 IntelArchitecture