세실이 주어진 유형에 대해 Operand
유형을 사용할 수있는 포괄적 인 정보를 얻으려면 상담원이 사용할 수있는 세실 소스 코드가 있습니까? Code
값이 있습니까? 예 : MethodBodyRocks
에서 이 VariableDefinition
인 Operand
을 가져 왔지만 일부 다른 명령어 코드를 추적 할 수 없었습니다.cecil : Instruction.OpCode.Code 값에 해당하는 유형입니다.
7
A
답변
5
OpCodes.cs 파일에서 모든 OpCode의 정의를 볼 수 있습니다.
예. Ldloc 당신은 OperandType.InlineVar
17
이 poupou의 대답에 각 명령어 코드에 할당됩니다 OperandType
OpCodes.cs 쇼를 추가하려면 볼 것입니다. 이 OperandType
을 사용하면 OperandType
을 사용하여 생성 된 구체적인 객체 유형을 결정하는 방법을 확인하려면 CodeReader.ReadOperand을 참조하십시오. 또한 CodeReader.ReadCode
은 CodeReader.ResolveBranches
을 사용하여 일부 피연산자를 명령 오프셋에서 Instruction
개체로 변환하여 반환하기 전에 참조하십시오.
내가 많은 (아무것도가 InlineNone OperandType가 있어야이 표에 포함되지 않음) 소스를 통해 모든 시간을 파고 더 편리 다음이었다이 테이블 생성 :
Instruction.OpCode.Code|Instruction.OpCode.OperandType|Instruction.Operand class
Ldarg_S |ShortInlineArg |ParameterDefinition
Ldarga_S |ShortInlineArg |ParameterDefinition
Starg_S |ShortInlineArg |ParameterDefinition
Ldloc_S |ShortInlineVar |VariableDefinition
Ldloca_S |ShortInlineVar |VariableDefinition
Stloc_S |ShortInlineVar |VariableDefinition
Ldc_I4_S |ShortInlineI |sbyte <===== NOTE: special case
Ldc_I4 |InlineI |int32
Ldc_I8 |InlineI8 |int64
Ldc_R4 |ShortInlineR |single
Ldc_R8 |InlineR |float (64 bit)
Jmp |InlineMethod |MethodReference
Call |InlineMethod |MethodReference
Calli |InlineSig |CallSite
Br_S |ShortInlineBrTarget |Instruction
Brfalse_S |ShortInlineBrTarget |Instruction
Brtrue_S |ShortInlineBrTarget |Instruction
Beq_S |ShortInlineBrTarget |Instruction
Bge_S |ShortInlineBrTarget |Instruction
Bgt_S |ShortInlineBrTarget |Instruction
Ble_S |ShortInlineBrTarget |Instruction
Blt_S |ShortInlineBrTarget |Instruction
Bne_Un_S |ShortInlineBrTarget |Instruction
Bge_Un_S |ShortInlineBrTarget |Instruction
Bgt_Un_S |ShortInlineBrTarget |Instruction
Ble_Un_S |ShortInlineBrTarget |Instruction
Blt_Un_S |ShortInlineBrTarget |Instruction
Br |InlineBrTarget |Instruction
Brfalse |InlineBrTarget |Instruction
Brtrue |InlineBrTarget |Instruction
Beq |InlineBrTarget |Instruction
Bge |InlineBrTarget |Instruction
Bgt |InlineBrTarget |Instruction
Ble |InlineBrTarget |Instruction
Blt |InlineBrTarget |Instruction
Bne_Un |InlineBrTarget |Instruction
Bge_Un |InlineBrTarget |Instruction
Bgt_Un |InlineBrTarget |Instruction
Ble_Un |InlineBrTarget |Instruction
Blt_Un |InlineBrTarget |Instruction
Switch |InlineSwitch |Instruction array
Callvirt |InlineMethod |MethodReference
Cpobj |InlineType |TypeReference
Ldobj |InlineType |TypeReference
Ldstr |InlineString |string
Newobj |InlineMethod |MethodReference
Castclass |InlineType |TypeReference
Isinst |InlineType |TypeReference
Unbox |InlineType |TypeReference
Ldfld |InlineField |FieldReference
Ldflda |InlineField |FieldReference
Stfld |InlineField |FieldReference
Ldsfld |InlineField |FieldReference
Ldsflda |InlineField |FieldReference
Stsfld |InlineField |FieldReference
Stobj |InlineType |TypeReference
Box |InlineType |TypeReference
Newarr |InlineType |TypeReference
Ldelema |InlineType |TypeReference
Ldelem_Any |InlineType |TypeReference
Stelem_Any |InlineType |TypeReference
Unbox_Any |InlineType |TypeReference
Refanyval |InlineType |TypeReference
Mkrefany |InlineType |TypeReference
Ldtoken |InlineTok |IMetadataTokenProvider
Leave |InlineBrTarget |Instruction
Leave_S |ShortInlineBrTarget |Instruction
Ldftn |InlineMethod |MethodReference
Ldvirtftn |InlineMethod |MethodReference
Ldarg |InlineArg |ParameterDefinition
Ldarga |InlineArg |ParameterDefinition
Starg |InlineArg |ParameterDefinition
Ldloc |InlineVar |VariableDefinition
Ldloca |InlineVar |VariableDefinition
Stloc |InlineVar |VariableDefinition
Unaligned |ShortInlineI |byte
Initobj |InlineType |TypeReference
Constrained |InlineType |TypeReference
No |ShortInlineI |byte
Sizeof |InlineType |TypeReference
큰 테이블을, 감사합니다! – Alexus