加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash - AVM2 指令参考

发布时间:2020-12-15 07:06:35 所属栏目:百科 来源:网络整理
导读:flash的VM指令网上很少有介绍 指令列表 // width jumps term thro calls push pop pop_ex use_l def_l name{ 0,0 N("0x00") },{ 0,0 N("0x01") },{ 1,0 N("nop") },// nop{ 1,1,0 N("throw") },{ 2,0 N("getsuper") },2,0 N("setsuper") },0 N("dxns") },0 N

flash的VM指令网上很少有介绍

指令列表

		// width jumps term thro calls push pop pop_ex use_l def_l       name
		{    0,0         N("0x00") },{    0,0         N("0x01") },{    1,0         N("nop") },// nop
		{    1,1,0         N("throw") },{    2,0         N("getsuper") },2,0         N("setsuper") },0         N("dxns") },0         N("dxnslate") },1         N("kill") },0         N("0x09") },// label
		{    0,0         N("0x0A") },0         N("0x0B") },0         N("ifnlt") },0         N("ifnle") },0         N("ifngt") },0         N("ifnge") },0         N("jump") },// 0x10
		{    2,0         N("iftrue") },0         N("iffalse") },0         N("ifeq") },0         N("ifne") },0         N("iflt") },0         N("ifle") },0         N("ifgt") },0         N("ifge") },0         N("ifstricteq") },0         N("ifstrictne") },{    3,0         N("lookupswitch") },// NOTE,variable length beyond 3rd word
		{    1,0         N("pushwith") },0         N("popscope") },0         N("nextname") },0         N("hasnext") },0         N("pushnull") },// 0x20
		{    1,0         N("pushundefined") },0         N("0x22") },0         N("nextvalue") },0         N("0x24") },// pushbyte
		{    0,0         N("0x25") },// pushshort
		{    1,0         N("pushtrue") },0         N("pushfalse") },0         N("pushnan") },0         N("pop") },0         N("dup") },0         N("swap") },0         N("pushstring") },0         N("0x2D") },// pushint
		{    0,0         N("0x2E") },// pushuint
		{    2,0         N("pushdouble") },0         N("pushscope") },// 0x30
		{    2,0         N("pushnamespace") },0         N("hasnext2") },0         N("0x33") },0         N("0x34") },0         N("li8") },0         N("li16") },0         N("li32") },0         N("lf32") },0         N("lf64") },0         N("si8") },0         N("si16") },0         N("si32") },0         N("sf32") },0         N("sf64") },0         N("0x3F") },0         N("newfunction") },// 0x40
		{    2,0         N("call") },0         N("construct") },0         N("callmethod") },0         N("callstatic") },0         N("callsuper") },0         N("callproperty") },0         N("returnvoid") },0         N("returnvalue") },0         N("constructsuper") },0         N("constructprop") },0         N("0x4B") },// callsuperid
		{    3,0         N("callproplex") },0         N("0x4D") },// callinterface
		{    3,0         N("callsupervoid") },0         N("callpropvoid") },0         N("sxi1") },0         N("sxi8") },0         N("sxi16") },0         N("applytype") },0         N("0x54") },0         N("newobject") },0         N("newarray") },0         N("newactivation") },0         N("newclass") },0         N("getdescendants") },0         N("newcatch") },0         N("0x5B") },0         N("0x5C") },0         N("findpropstrict") },0         N("findproperty") },0         N("finddef") },0         N("getlex") },// 0x60
		{    2,0         N("setproperty") },0         N("getlocal") },1         N("setlocal") },0         N("getglobalscope") },0         N("getscopeobject") },0         N("getproperty") },0         N("getouterscope") },0         N("initproperty") },0         N("0x69") },0         N("deleteproperty") },0         N("0x6B") },0         N("getslot") },0         N("setslot") },0         N("getglobalslot") },0         N("setglobalslot") },0         N("convert_s") },// 0x70
		{    1,0         N("esc_xelem") },0         N("esc_xattr") },0         N("convert_i") },0         N("convert_u") },0         N("convert_d") },0         N("convert_b") },0         N("convert_o") },0         N("checkfilter") },0         N("0x79") },0         N("0x7A") },0         N("0x7B") },0         N("0x7C") },0         N("0x7D") },0         N("0x7E") },0         N("0x7F") },0         N("coerce") },// 0x80
		{    0,0         N("0x81") },0         N("0x82") },0         N("0x83") },0         N("0x84") },0         N("coerce_s") },0         N("astype") },0         N("astypelate") },0         N("0x88") },0         N("coerce_o") },0         N("0x8A") },0         N("0x8B") },0         N("0x8C") },0         N("0x8D") },0         N("0x8E") },0         N("0x8F") },0         N("negate") },// 0x90
		{    1,0         N("increment") },1         N("inclocal") },0         N("decrement") },1         N("declocal") },0         N("typeof") },0         N("not") },0         N("bitnot") },0         N("0x98") },0         N("0x99") },0         N("0x9A") },0         N("0x9B") },0         N("0x9C") },0         N("0x9D") },0         N("0x9E") },0         N("0x9F") },0         N("add") },// 0xA0
		{    1,0         N("subtract") },0         N("multiply") },0         N("divide") },0         N("modulo") },0         N("lshift") },0         N("rshift") },0         N("urshift") },0         N("bitand") },0         N("bitor") },0         N("bitxor") },0         N("equals") },0         N("strictequals") },0         N("lessthan") },0         N("lessequals") },0         N("greaterthan") },0         N("greaterequals") },// 0xB0
		{    1,0         N("instanceof") },0         N("istype") },0         N("istypelate") },0         N("in") },0         N("0xB5") },0         N("0xB6") },0         N("0xB7") },0         N("0xB8") },0         N("0xB9") },0         N("0xBA") },0         N("0xBB") },0         N("0xBC") },0         N("0xBD") },0         N("0xBE") },0         N("0xBF") },0         N("increment_i") },// 0xC0
		{    1,0         N("decrement_i") },1         N("inclocal_i") },1         N("declocal_i") },0         N("negate_i") },0         N("add_i") },0         N("subtract_i") },0         N("multiply_i") },0         N("0xC8") },0         N("0xC9") },0         N("0xCA") },0         N("0xCB") },0         N("0xCC") },0         N("0xCD") },0         N("0xCE") },0         N("0xCF") },0         N("getlocal0") },// 0xD0
		{    1,0         N("getlocal1") },0         N("getlocal2") },0         N("getlocal3") },1         N("setlocal0") },1         N("setlocal1") },1         N("setlocal2") },1         N("setlocal3") },0         N("0xD8") },0         N("0xD9") },0         N("0xDA") },0         N("0xDB") },0         N("0xDC") },0         N("0xDD") },0         N("0xDE") },0         N("0xDF") },0         N("0xE0") },// 0xE0
		{    0,0         N("0xE1") },0         N("0xE2") },0         N("0xE3") },0         N("0xE4") },0         N("0xE5") },0         N("0xE6") },0         N("0xE7") },0         N("0xE8") },0         N("0xE9") },0         N("0xEA") },0         N("0xEB") },0         N("0xEC") },0         N("0xED") },0         N("0xEE") },// abs_jump
		{    5,0         N("debug") },0         N("debugline") },// 0xF0
		{    2,0         N("debugfile") },0         N("0xF2") },0         N("0xF3") },// timestamp
		{    0,0         N("0xF4") },0         N("0xF5") },0         N("0xF6") },0         N("0xF7") },0         N("0xF8") },0         N("0xF9") },0         N("0xFA") },0         N("0xFB") },0         N("0xFC") },0         N("0xFD") },0         N("0xFE") },0         N("0xFF") },0         N("0x100") },// 0x100
		{    2,0         N("pushbits") },0         N("push_doublebits") },0         N("get2locals") },3,0         N("get3locals") },4,0         N("get4locals") },5,0         N("get5locals") },1         N("storelocal") },0         N("add_ll") },1         N("add_set_lll") },0         N("subtract_ll") },0         N("multiply_ll") },0         N("divide_ll") },0         N("modulo_ll") },0         N("bitand_ll") },0         N("bitor_ll") },0         N("bitxor_ll") },// 0x110
		{    3,0         N("add_lb") },0         N("subtract_lb") },0         N("multiply_lb") },0         N("divide_lb") },0         N("bitand_lb") },0         N("bitor_lb") },0         N("bitxor_lb") },0         N("iflt_ll") },0         N("ifnlt_ll") },0         N("ifle_ll") },0         N("ifnle_ll") },0         N("ifgt_ll") },0         N("ifngt_ll") },0         N("ifge_ll") },0         N("ifnge_ll") },0         N("ifeq_ll") },// 0x120
		{    3,0         N("ifne_ll") },0         N("ifstricteq_ll") },0         N("ifstrictne_ll") },{    4,0         N("iflt_lb") },0         N("ifnlt_lb") },0         N("ifle_lb") },0         N("ifnle_lb") },0         N("ifgt_lb") },0         N("ifngt_lb") },0         N("ifge_lb") },0         N("ifnge_lb") },0         N("ifeq_lb") },0         N("ifne_lb") },0         N("ifstricteq_lb") },0         N("ifstrictne_lb") },0         N("swap_pop") },// 0x130
		{    3,0         N("findpropglobal") },0         N("findpropglobalstrict") },0         N("debugenter") },0         N("debugexit") },0         N("lix8") },0         N("lix16") },

摘自 corewopcodes.cpp,完整源码在本人资源有下载

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读