Cette structure permet d'obtenir des informations sur l'argument analysé.
struct ARGTYPE { char ArgMnemonic[16]; long ArgType; long ArgSize; long AccessMode; MEMORYTYPE Memory; long SegmentReg; } ;
Membres
ArgMnemonic
[out] Ce champ renvoie, quand cela est possible, l'argument au format ASCII.
ArgType
[out] Ce champ indique le type d'argument. (MyDisasm.Argumentxx.ArgType & 0xFFFF0000) permet de savoir s'il s'agit d'un registre, d'un accès mémoire ou d'une constante. LOWORD(MyDisasm.Argumentxx.ArgType) est utilisé dans le cas où nous sommes en présence d'un REGISTER_TYPE. Dans ce cas, nous obtenons la liste des registres utilisés. Pour obtenir une liste exhaustive , voir les constantes utilisées par BeaEngine ICI
ArgSize
[out] Ce champ renvoie la taille de l'argument utilisé.
AccessMode
[out] Ce champ permet de savoir si l'argument utilisé est en mode lecture seule (READ=0x1) ou en mode écriture (WRITE=0x2).
Memory
[out] Structure de type MEMORYTYPE qui est renseignée seulement si MyDisasm.Argument1.ArgType == MEMORY_TYPE.
SegmentReg
[out] Ce champ précise, dans le cas d'un adressage mémoire, le registre de segment utilisé en utilisant l'une des constantes suivantes :
#define ESReg 1 #define DSReg 2 #define FSReg 3 #define GSReg 4 #define CSReg 5 #define SSReg 6