mirror of
https://github.com/Ed94/perfaware.git
synced 2026-09-14 03:39:23 +00:00
drafting an asm parser (rudimentary)
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
#ifdef INTELLISENSE_DIRECTIVES
|
||||
# pragma once
|
||||
# include "encoder.h"
|
||||
#endif
|
||||
|
||||
RO_ global Str8 x8616_serialize_header = slit8("bits 16\n\n");
|
||||
|
||||
RO_ global Str8 x8616_serialize_mnemonic[] = {
|
||||
[x8616_op_invalid] = slit8(""),
|
||||
[x8616_op_nop] = slit8("nop"),
|
||||
[x8616_op_mov] = slit8("mov"),
|
||||
[x8616_op_add] = slit8("add"),
|
||||
[x8616_op_or] = slit8("or"),
|
||||
[x8616_op_adc] = slit8("adc"),
|
||||
[x8616_op_sbb] = slit8("sbb"),
|
||||
[x8616_op_and] = slit8("and"),
|
||||
[x8616_op_sub] = slit8("sub"),
|
||||
[x8616_op_xor] = slit8("xor"),
|
||||
[x8616_op_cmp] = slit8("cmp"),
|
||||
[x8616_op_push] = slit8("push"),
|
||||
[x8616_op_pop] = slit8("pop"),
|
||||
[x8616_op_xchg] = slit8("xchg"),
|
||||
[x8616_op_in] = slit8("in"),
|
||||
[x8616_op_out] = slit8("out"),
|
||||
[x8616_op_xlat] = slit8("xlat"),
|
||||
[x8616_op_lea] = slit8("lea"),
|
||||
[x8616_op_lds] = slit8("lds"),
|
||||
[x8616_op_les] = slit8("les"),
|
||||
[x8616_op_lahf] = slit8("lahf"),
|
||||
[x8616_op_sahf] = slit8("sahf"),
|
||||
[x8616_op_pushf] = slit8("pushf"),
|
||||
[x8616_op_popf] = slit8("popf"),
|
||||
[x8616_op_inc] = slit8("inc"),
|
||||
[x8616_op_aaa] = slit8("aaa"),
|
||||
[x8616_op_daa] = slit8("daa"),
|
||||
[x8616_op_dec] = slit8("dec"),
|
||||
[x8616_op_neg] = slit8("neg"),
|
||||
[x8616_op_aas] = slit8("aas"),
|
||||
[x8616_op_das] = slit8("das"),
|
||||
[x8616_op_mul] = slit8("mul"),
|
||||
[x8616_op_imul] = slit8("imul"),
|
||||
[x8616_op_aam] = slit8("aam"),
|
||||
[x8616_op_div] = slit8("div"),
|
||||
[x8616_op_idiv] = slit8("idiv"),
|
||||
[x8616_op_aad] = slit8("aad"),
|
||||
[x8616_op_cbw] = slit8("cbw"),
|
||||
[x8616_op_cwd] = slit8("cwd"),
|
||||
[x8616_op_not] = slit8("not"),
|
||||
[x8616_op_shl] = slit8("shl"),
|
||||
[x8616_op_shr] = slit8("shr"),
|
||||
[x8616_op_sar] = slit8("sar"),
|
||||
[x8616_op_rol] = slit8("rol"),
|
||||
[x8616_op_ror] = slit8("ror"),
|
||||
[x8616_op_rcl] = slit8("rcl"),
|
||||
[x8616_op_rcr] = slit8("rcr"),
|
||||
[x8616_op_test] = slit8("test"),
|
||||
[x8616_op_rep] = slit8(""),
|
||||
[x8616_op_movs] = slit8("movs"),
|
||||
[x8616_op_cmps] = slit8("cmps"),
|
||||
[x8616_op_scas] = slit8("scas"),
|
||||
[x8616_op_lods] = slit8("lods"),
|
||||
[x8616_op_stos] = slit8("stos"),
|
||||
[x8616_op_call] = slit8("call"),
|
||||
[x8616_op_jmp] = slit8("jmp"),
|
||||
[x8616_op_ret] = slit8("ret"),
|
||||
[x8616_op_retf] = slit8("retf"),
|
||||
[x8616_op_je] = slit8("je"),
|
||||
[x8616_op_jl] = slit8("jl"),
|
||||
[x8616_op_jle] = slit8("jle"),
|
||||
[x8616_op_jb] = slit8("jb"),
|
||||
[x8616_op_jbe] = slit8("jbe"),
|
||||
[x8616_op_jp] = slit8("jp"),
|
||||
[x8616_op_jo] = slit8("jo"),
|
||||
[x8616_op_js] = slit8("js"),
|
||||
[x8616_op_jne] = slit8("jne"),
|
||||
[x8616_op_jnl] = slit8("jnl"),
|
||||
[x8616_op_jg] = slit8("jg"),
|
||||
[x8616_op_jnb] = slit8("jnb"),
|
||||
[x8616_op_ja] = slit8("ja"),
|
||||
[x8616_op_jnp] = slit8("jnp"),
|
||||
[x8616_op_jno] = slit8("jno"),
|
||||
[x8616_op_jns] = slit8("jns"),
|
||||
[x8616_op_loop] = slit8("loop"),
|
||||
[x8616_op_loopz] = slit8("loopz"),
|
||||
[x8616_op_loopnz] = slit8("loopnz"),
|
||||
[x8616_op_jcxz] = slit8("jcxz"),
|
||||
[x8616_op_int] = slit8("int"),
|
||||
[x8616_op_int3] = slit8("int3"),
|
||||
[x8616_op_into] = slit8("into"),
|
||||
[x8616_op_iret] = slit8("iret"),
|
||||
[x8616_op_clc] = slit8("clc"),
|
||||
[x8616_op_cmc] = slit8("cmc"),
|
||||
[x8616_op_stc] = slit8("stc"),
|
||||
[x8616_op_cld] = slit8("cld"),
|
||||
[x8616_op_std] = slit8("std"),
|
||||
[x8616_op_cli] = slit8("cli"),
|
||||
[x8616_op_sti] = slit8("sti"),
|
||||
[x8616_op_hlt] = slit8("hlt"),
|
||||
[x8616_op_wait] = slit8("wait"),
|
||||
[x8616_op_lock] = slit8(""),
|
||||
[x8616_op_segment] = slit8(""),
|
||||
};
|
||||
|
||||
RO_ global Str8 x8616_serialize_reg8[] = {
|
||||
[x8616_al] = slit8("al"),
|
||||
[x8616_cl] = slit8("cl"),
|
||||
[x8616_dl] = slit8("dl"),
|
||||
[x8616_bl] = slit8("bl"),
|
||||
[x8616_ah] = slit8("ah"),
|
||||
[x8616_ch] = slit8("ch"),
|
||||
[x8616_dh] = slit8("dh"),
|
||||
[x8616_bh] = slit8("bh"),
|
||||
};
|
||||
|
||||
RO_ global Str8 x8616_serialize_reg16[] = {
|
||||
[x8616_ax] = slit8("ax"),
|
||||
[x8616_cx] = slit8("cx"),
|
||||
[x8616_dx] = slit8("dx"),
|
||||
[x8616_bx] = slit8("bx"),
|
||||
[x8616_sp] = slit8("sp"),
|
||||
[x8616_bp] = slit8("bp"),
|
||||
[x8616_si] = slit8("si"),
|
||||
[x8616_di] = slit8("di"),
|
||||
};
|
||||
|
||||
RO_ global Str8 x8616_serialize_seg[] = {
|
||||
[x8616_es] = slit8("es"),
|
||||
[x8616_cs] = slit8("cs"),
|
||||
[x8616_ss] = slit8("ss"),
|
||||
[x8616_ds] = slit8("ds"),
|
||||
};
|
||||
|
||||
RO_ global Str8 x8616_serialize_ea[] = {
|
||||
[x8616_ea_bx_si] = slit8("bx + si"),
|
||||
[x8616_ea_bx_di] = slit8("bx + di"),
|
||||
[x8616_ea_bp_si] = slit8("bp + si"),
|
||||
[x8616_ea_bp_di] = slit8("bp + di"),
|
||||
[x8616_ea_si] = slit8("si"),
|
||||
[x8616_ea_di] = slit8("di"),
|
||||
[x8616_ea_bp] = slit8("bp"),
|
||||
[x8616_ea_bx] = slit8("bx"),
|
||||
};
|
||||
Reference in New Issue
Block a user