IDA SDK

- Main Page
- Header Files
- Classes
- Modules

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Attributes | List of all members
asm_t Struct Reference

## Detailed Description

Describes the target assembler.

An IDP module may have several target assemblers. In this case you should create a structure for each supported assembler.

## 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 uint16 * | badworks
| array of unsupported instructions (array of insn_t::itype, zero terminated)
const char * | origin
| org directive
const char * | end
| end directive
const char * | cmnt
| comment string (see also cmnt2)
char | ascsep
| ASCII string delimiter.
char | accsep
| ASCII char constant delimiter.
const char * | esccodes
| ASCII special chars (they can't appear in character and ascii constants)
const char * | a_ascii
| ASCII string directive.
const char * | a_byte
| byte directive
const char * | a_word
| word directive
const char * | a_dword
| NULL if not allowed.
const char * | a_qword
| NULL if not allowed.
const char * | a_oword
| NULL if not allowed.
const char * | a_float
| float; 4bytes; NULL if not allowed
const char * | a_double
| double; 8bytes; NULL if not allowed
const char * | a_tbyte
| long double; NULL if not allowed
const char * | a_packreal
| packed decimal real NULL if not allowed
const char * | a_dups
| array keyword. More...
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)
bool(idaapi * | checkarg_dispatch )(void *a1, void *a2, uchar cmd)
| Pointer to checkarg_dispatch function. If NULL, checkarg won't be called.
void * | _UNUSED1_was_atomprefix
void * | _UNUSED2_was_checkarg_operations
const uchar * | XlatAsciiOutput
| Translation to use in character and string constants. More...
const char * | a_curip
| current IP (instruction pointer) symbol in assembler
void(idaapi * | func_header )(func_t *)
| Generate function header lines. More...
void(idaapi * | func_footer )(func_t *)
| Generate function footer lines. More...
const char * | a_public
| "public" name keyword. NULL-gen default, ""-do not generate
const char * | a_weak
| "weak" name keyword. NULL-gen default, ""-do not generate
const char * | a_extrn
| "extern" name keyword
const char * | a_comdef
| "comm" (communal variable)
ssize_t(idaapi * | get_type_name )(flags_t flag, ea_t ea_or_id, char *buf, size_t bufsize)
| Get name of type of item at ea or id. More...
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
| >> shift right assembler time operation
const char * | a_sizeof_fmt
| size of type (format string)
uint32 | flag2
| Secondary assembler feature bits
const char * | cmnt2
| comment close string (usually NULL) this is used to denote a string which closes comments, for example, if the comments are represented with (* ... More...
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. More...
const char * | a_3byte
| 3-byte data
const char * | a_rva
| 'rva' keyword for image based offsets (see REFINFO_RVAOFF)
const char * | a_yword
| 32-byte (256-bit) data; NULL if not allowed requires AS2_YWORD

## Member Data Documentation

const char* asm_t::a_dups

array keyword.

the following sequences may appear:

- #h header
- #d size
- #v value
- #s(b,w,l,q,f,d,o) size specifiers for byte,word, dword,qword, float,double,oword

const uchar* asm_t::XlatAsciiOutput

Translation to use in character and string constants.

Usually 1:1, i.e. trivial translation (may specify NULL) If specified, must be 256 chars long

void(idaapi * asm_t::func_header) (func_t *)

Generate function header lines.

If NULL, then function headers are displayed as normal lines

void(idaapi * asm_t::func_footer) (func_t *)

Generate function footer lines.

If NULL, then a comment line is displayed

ssize_t(idaapi * asm_t::get_type_name) (flags_t flag, ea_t ea_or_id, char *buf, size_t bufsize)

Get name of type of item at ea or id.

(i.e. one of: byte,word,dword,near,far,etc...)

const char* asm_t::cmnt2

comment close string (usually NULL) 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::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)

The documentation for this struct was generated from the following file:

- idp.hpp