IDA C++ SDK 9.2
|
Describes the target assembler. More...
#include <idp.hpp>
Public Member Functions | |
void (idaapi *out_func_header)(outctx_t &ctx | |
Generate function header lines. | |
func_t * | void (idaapi *out_func_footer)(outctx_t &ctx |
Generate function footer lines. | |
ssize_t (idaapi *get_type_name)(qstring *buf | |
Get name of type of item at ea or id. |
Public Attributes | |
uint32 | flag |
Assembler feature bits | |
uint16 | uflag |
user defined flags (local only for IDP) you may define and use your own bits | |
const char * | name |
Assembler name (displayed in menus) | |
help_t | help |
Help screen number, 0 - no help. | |
const char *const * | header |
array of automatically generated header lines they appear at the start of disassembled text | |
const char * | origin |
org directive | |
const char * | end |
end directive | |
const char * | cmnt |
comment string (see also cmnt2) | |
char | ascsep |
string literal delimiter | |
char | accsep |
char constant delimiter | |
const char * | esccodes |
special chars that cannot appear as is in string and char literals | |
const char * | a_ascii |
string literal directive | |
const char * | a_byte |
byte directive | |
const char * | a_word |
word directive | |
const char * | a_dword |
nullptr if not allowed | |
const char * | a_qword |
nullptr if not allowed | |
const char * | a_oword |
nullptr if not allowed | |
const char * | a_float |
float; 4bytes; nullptr if not allowed | |
const char * | a_double |
double; 8bytes; nullptr if not allowed | |
const char * | a_tbyte |
long double; nullptr if not allowed | |
const char * | a_packreal |
packed decimal real nullptr if not allowed | |
const char * | a_dups |
array keyword. | |
const char * | a_bss |
uninitialized data directive should include 's' for the size of data | |
const char * | a_equ |
'equ' Used if AS_UNEQU is set | |
const char * | a_seg |
'seg ' prefix (example: push seg seg001) | |
const char * | a_curip |
current IP (instruction pointer) symbol in assembler | |
func_t func_t *const char * | a_public |
"public" name keyword. nullptr-use default, ""-do not generate | |
const char * | a_weak |
"weak" name keyword. nullptr-use default, ""-do not generate | |
const char * | a_extrn |
"extern" name keyword | |
const char * | a_comdef |
"comm" (communal variable) | |
flags64_t | flag |
flags64_t ea_t | ea_or_id |
const char * | a_align |
"align" keyword | |
char | lbrace |
left brace used in complex expressions | |
char | rbrace |
right brace used in complex expressions | |
const char * | a_mod |
% mod assembler time operation | |
const char * | a_band |
& bit and assembler time operation | |
const char * | a_bor |
| bit or assembler time operation | |
const char * | a_xor |
^ bit xor assembler time operation | |
const char * | a_bnot |
~ bit not assembler time operation | |
const char * | a_shl |
<< shift left assembler time operation | |
const char * | a_shr |
const char * | a_sizeof_fmt |
size of type (format string) | |
uint32 | flag2 |
Secondary assembler feature bits | |
const char * | cmnt2 |
comment close string (usually nullptr) this is used to denote a string which closes comments, for example, if the comments are represented with (* ... *) then cmnt = "(*" and cmnt2 = "*)" | |
const char * | low8 |
low8 operation, should contain s for the operand | |
const char * | high8 |
high8 | |
const char * | low16 |
low16 | |
const char * | high16 |
high16 | |
const char * | a_include_fmt |
the include directive (format string) | |
const char * | a_vstruc_fmt |
if a named item is a structure and displayed in the verbose (multiline) form then display the name as printf(a_strucname_fmt, typename) (for asms with type checking, e.g. | |
const char * | a_rva |
'rva' keyword for image based offsets (see #REFINFO_RVAOFF) | |
const char * | a_yword |
32-byte (256-bit) data; nullptr if not allowed requires #AS2_YWORD | |
const char * | a_zword |
64-byte (512-bit) data; nullptr if not allowed requires #AS2_ZWORD |
Describes the target assembler.
An IDP module may have several target assemblers. In this case you should create a structure for each supported assembler.
asm_t::void | ( | idaapi * | out_func_header | ) | & |
Generate function header lines.
If nullptr, then function headers are displayed as normal lines
func_t * asm_t::void | ( | idaapi * | out_func_footer | ) | & |
Generate function footer lines.
If nullptr, then a comment line is displayed
asm_t::ssize_t | ( | idaapi * | get_type_name | ) |
Get name of type of item at ea or id.
(i.e. one of: byte,word,dword,near,far,etc...)
uint32 asm_t::flag |
uint16 asm_t::uflag |
user defined flags (local only for IDP) you may define and use your own bits
const char* asm_t::name |
Assembler name (displayed in menus)
help_t asm_t::help |
Help screen number, 0 - no help.
const char* const* asm_t::header |
array of automatically generated header lines they appear at the start of disassembled text
const char* asm_t::origin |
org directive
const char* asm_t::end |
end directive
const char* asm_t::cmnt |
comment string (see also cmnt2)
char asm_t::ascsep |
string literal delimiter
char asm_t::accsep |
char constant delimiter
const char* asm_t::esccodes |
special chars that cannot appear as is in string and char literals
const char* asm_t::a_ascii |
string literal directive
const char* asm_t::a_byte |
byte directive
const char* asm_t::a_word |
word directive
const char* asm_t::a_dword |
nullptr if not allowed
const char* asm_t::a_qword |
nullptr if not allowed
const char* asm_t::a_oword |
nullptr if not allowed
const char* asm_t::a_float |
float; 4bytes; nullptr if not allowed
const char* asm_t::a_double |
double; 8bytes; nullptr if not allowed
const char* asm_t::a_tbyte |
long double; nullptr if not allowed
const char* asm_t::a_packreal |
packed decimal real nullptr if not allowed
const char* asm_t::a_dups |
array keyword.
the following sequences may appear:
const char* asm_t::a_bss |
uninitialized data directive should include 's' for the size of data
const char* asm_t::a_equ |
'equ' Used if AS_UNEQU is set
const char* asm_t::a_seg |
'seg ' prefix (example: push seg seg001)
const char* asm_t::a_curip |
current IP (instruction pointer) symbol in assembler
"public" name keyword. nullptr-use default, ""-do not generate
const char* asm_t::a_weak |
"weak" name keyword. nullptr-use default, ""-do not generate
const char* asm_t::a_extrn |
"extern" name keyword
const char* asm_t::a_comdef |
"comm" (communal variable)
flags64_t asm_t::flag |
const char* asm_t::a_align |
"align" keyword
char asm_t::lbrace |
left brace used in complex expressions
char asm_t::rbrace |
right brace used in complex expressions
const char* asm_t::a_mod |
% mod assembler time operation
const char* asm_t::a_band |
& bit and assembler time operation
const char* asm_t::a_bor |
| bit or assembler time operation
const char* asm_t::a_xor |
^ bit xor assembler time operation
const char* asm_t::a_bnot |
~ bit not assembler time operation
const char* asm_t::a_shl |
<< shift left assembler time operation
const char* asm_t::a_shr |
shift right assembler time operation
const char* asm_t::a_sizeof_fmt |
size of type (format string)
uint32 asm_t::flag2 |
const char* asm_t::cmnt2 |
comment close string (usually nullptr) this is used to denote a string which closes comments, for example, if the comments are represented with (* ... *) then cmnt = "(*" and cmnt2 = "*)"
const char* asm_t::low8 |
low8 operation, should contain s for the operand
const char* asm_t::high8 |
high8
const char* asm_t::low16 |
low16
const char* asm_t::high16 |
high16
const char* asm_t::a_include_fmt |
the include directive (format string)
const char* asm_t::a_vstruc_fmt |
if a named item is a structure and displayed in the verbose (multiline) form then display the name as printf(a_strucname_fmt, typename) (for asms with type checking, e.g.
tasm ideal)
const char* asm_t::a_rva |
'rva' keyword for image based offsets (see #REFINFO_RVAOFF)
const char* asm_t::a_yword |
32-byte (256-bit) data; nullptr if not allowed requires #AS2_YWORD
const char* asm_t::a_zword |
64-byte (512-bit) data; nullptr if not allowed requires #AS2_ZWORD