IDA C++ SDK 9.2
Loading...
Searching...
No Matches
asm_t Struct Reference

Describes the target assembler. More...

#include <idp.hpp>

Public Member Functions

 void (idaapi *out_func_header)(outctx_t &ctx
 Generate function header lines.
func_tvoid (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

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.

Member Function Documentation

◆ void() [1/2]

asm_t::void ( idaapi * out_func_header) &

Generate function header lines.

If nullptr, then function headers are displayed as normal lines

◆ void() [2/2]

func_t * asm_t::void ( idaapi * out_func_footer) &

Generate function footer lines.

If nullptr, then a comment line is displayed

◆ ssize_t()

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...)

Member Data Documentation

◆ flag [1/2]

◆ uflag

uint16 asm_t::uflag

user defined flags (local only for IDP) you may define and use your own bits

◆ name

const char* asm_t::name

Assembler name (displayed in menus)

◆ help

help_t asm_t::help

Help screen number, 0 - no help.

◆ header

const char* const* asm_t::header

array of automatically generated header lines they appear at the start of disassembled text

◆ origin

const char* asm_t::origin

org directive

◆ end

const char* asm_t::end

end directive

◆ cmnt

const char* asm_t::cmnt

comment string (see also cmnt2)

◆ ascsep

char asm_t::ascsep

string literal delimiter

◆ accsep

char asm_t::accsep

char constant delimiter

◆ esccodes

const char* asm_t::esccodes

special chars that cannot appear as is in string and char literals

◆ a_ascii

const char* asm_t::a_ascii

string literal directive

◆ a_byte

const char* asm_t::a_byte

byte directive

◆ a_word

const char* asm_t::a_word

word directive

◆ a_dword

const char* asm_t::a_dword

nullptr if not allowed

◆ a_qword

const char* asm_t::a_qword

nullptr if not allowed

◆ a_oword

const char* asm_t::a_oword

nullptr if not allowed

◆ a_float

const char* asm_t::a_float

float; 4bytes; nullptr if not allowed

◆ a_double

const char* asm_t::a_double

double; 8bytes; nullptr if not allowed

◆ a_tbyte

const char* asm_t::a_tbyte

long double; nullptr if not allowed

◆ a_packreal

const char* asm_t::a_packreal

packed decimal real nullptr if not allowed

◆ a_dups

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

◆ a_bss

const char* asm_t::a_bss

uninitialized data directive should include 's' for the size of data

◆ a_equ

const char* asm_t::a_equ

'equ' Used if AS_UNEQU is set

◆ a_seg

const char* asm_t::a_seg

'seg ' prefix (example: push seg seg001)

◆ a_curip

const char* asm_t::a_curip

current IP (instruction pointer) symbol in assembler

◆ a_public

func_t func_t* const char* asm_t::a_public

"public" name keyword. nullptr-use default, ""-do not generate

◆ a_weak

const char* asm_t::a_weak

"weak" name keyword. nullptr-use default, ""-do not generate

◆ a_extrn

const char* asm_t::a_extrn

"extern" name keyword

◆ a_comdef

const char* asm_t::a_comdef

"comm" (communal variable)

◆ flag [2/2]

flags64_t asm_t::flag

◆ ea_or_id

flags64_t ea_t asm_t::ea_or_id

◆ a_align

const char* asm_t::a_align

"align" keyword

◆ lbrace

char asm_t::lbrace

left brace used in complex expressions

◆ rbrace

char asm_t::rbrace

right brace used in complex expressions

◆ a_mod

const char* asm_t::a_mod

% mod assembler time operation

◆ a_band

const char* asm_t::a_band

& bit and assembler time operation

◆ a_bor

const char* asm_t::a_bor

| bit or assembler time operation

◆ a_xor

const char* asm_t::a_xor

^ bit xor assembler time operation

◆ a_bnot

const char* asm_t::a_bnot

~ bit not assembler time operation

◆ a_shl

const char* asm_t::a_shl

<< shift left assembler time operation

◆ a_shr

const char* asm_t::a_shr

shift right assembler time operation

◆ a_sizeof_fmt

const char* asm_t::a_sizeof_fmt

size of type (format string)

◆ flag2

◆ cmnt2

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 = "*)"

◆ low8

const char* asm_t::low8

low8 operation, should contain s for the operand

◆ high8

const char* asm_t::high8

high8

◆ low16

const char* asm_t::low16

low16

◆ high16

const char* asm_t::high16

high16

◆ a_include_fmt

const char* asm_t::a_include_fmt

the include directive (format string)

◆ a_vstruc_fmt

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)

◆ a_rva

const char* asm_t::a_rva

'rva' keyword for image based offsets (see #REFINFO_RVAOFF)

◆ a_yword

const char* asm_t::a_yword

32-byte (256-bit) data; nullptr if not allowed requires #AS2_YWORD

◆ a_zword

const char* asm_t::a_zword

64-byte (512-bit) data; nullptr if not allowed requires #AS2_ZWORD


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