亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? x86emit.h

?? 一個(gè)任天堂掌上游戲機(jī)NDS的源代碼
?? H
?? 第 1 頁 / 共 2 頁
字號(hào):
#ifndef __X86_H_#define __X86_H_#include <stdio.h>#include "datadefs.h"#include "codeblock.h"//---Opcode defines--------------------------------------------------------//---Prefixes#define PREFIX_OP      0x66#define PREFIX_ADDR    0x67#define PREFIX_ES      0x26#define PREFIX_CS      0x2E#define PREFIX_SS      0x36#define PREFIX_DS      0x3E#define PREFIX_FS      0x64#define PREFIX_GS      0x65#define PREFIX_LOCK    0xF0#define PREFIX_REPNE   0xF2#define PREFIX_REP     0xF3//---Implied opcodes#define XOP_AAA        0x37#define XOP_AAD        0x0AD5#define XOP_AAM        0x0AD4#define XOP_AAS        0x3F#define XOP_CDQ        0x99#define XOP_CLC        0xF8#define XOP_CLD        0xFC#define XOP_CLI        0xFA#define XOP_CMC        0xF5#define XOP_CMPSB      0xF6#define XOP_CMPSD      0xF7#define XOP_CWDE       0x98#define XOP_DAA        0x27#define XOP_DAS        0x2F#define XOP_HLT        0xF4#define XOP_IN_reg8    0xEC#define XOP_IN_reg32   0xED#define XOP_INSB       0x6C#define XOP_INSD       0x6D#define XOP_INT3       0xCC#define XOP_INTO       0xDE#define XOP_IRET       0xCF#define XOP_LAHF       0x9F#define XOP_LEAVE      0xC9#define XOP_LODSB      0xAC#define XOP_LODSD      0xAD#define XOP_MOVSB      0xA4#define XOP_MOVSD      0xA5#define XOP_NOP        0x90#define XOP_OUT_reg8   0xEE#define XOP_OUT_reg32  0xEF#define XOP_OUTSB      0x6E#define XOP_OUTSD      0x6F#define XOP_POPAD      0x61#define XOP_POPFD      0x9D#define XOP_PUSHAD     0x60#define XOP_PUSHFD     0x9C#define XOP_RET        0xC3#define XOP_RETF       0xCB#define XOP_SAHF       0x9E#define XOP_SCASB      0xAE#define XOP_SCASD      0xAF#define XOP_STC        0xF9#define XOP_STD        0xFD#define XOP_STI        0xFB#define XOP_STOSB      0xAA#define XOP_STOSD      0xAB#define XOP_XLAT       0xD7    //---Using the ModRM encodings#define XMOP_ADD 0#define XMOP_OR  1#define XMOP_ADC 2#define XMOP_SBB 3#define XMOP_AND 4#define XMOP_SUB 5#define XMOP_XOR 6#define XMOP_CMP 7#define XMOP_ROL 0#define XMOP_ROR 1#define XMOP_RCL 2#define XMOP_RCR 3#define XMOP_SHL 4#define XMOP_SHR 5#define XMOP_SAR 7//---Registers-------------------------------------------------------------enum X86Reg {    al=0, cl, dl, bl, ah, ch, dh, bh,    ax, cx, dx, bx, sp, bp, si, di,    eax, ecx, edx, ebx, esp, ebp, esi, edi,    es, cs, ss, ds, fs, gs};//---Condition encodings---------------------------------------------------#define CC_O            0x00                    // overflow (OF=1)#define CC_NO           0x01                    // not overflow (OF=0)#define CC_B            0x02                    // below (CF=1)#define CC_NAE          CC_B                    // #define CC_C            CC_B#define CC_NB           0x03                    // above or equal (CF=0)#define CC_NC           0x03                    //#define CC_AE           CC_NB                   //#define CC_E            0x04                    // zero (ZF=1)#define CC_Z            CC_E                    //#define CC_NE           0x05                    // not zero (ZF=0)#define CC_NZ           CC_NE                   //#define CC_BE           0x06                    // below or equal (CF=1 or ZF=1)#define CC_NA           CC_BE                   //#define CC_NBE          0x07                    // above (CF=0 and ZF=0)#define CC_A            CC_NBE                  //#define CC_S            0x08                    // sign (SF=1)#define CC_NS           0x09                    // not sign (SF=0)#define CC_P            0x0A                    // parity (PF=1)#define CC_PE           CC_P                    //#define CC_NP           0x0B                    // not parity (PF=0)#define CC_PO           CC_NP                   //#define CC_L            0x0C                    // less (SF<>OF)#define CC_NGE          CC_L                    //#define CC_NL           0x0D                    // not less (SF=OF)#define CC_GE           CC_NL                   //#define CC_LE           0x0E                    // less or equal (ZF=1 or SF<>OF)#define CC_NG           CC_LE                   //#define CC_NLE          0x0F                    // greater (ZF=0 and SF=OF)#define CC_G            CC_NLE                  ////---Helper defines--------------------------------------------------------#define MOD(m)  ( ((m)&3) << 6 )#define REG(r)  ( ((r)&7) << 3 )#define RM(rm)  ( ((rm)&7) )#define ModRM(mod,reg,rm)       ((u8)(MOD(mod) | REG(reg) | RM(rm)))#define SIZECHECK(x) \    switch(r) \    { \	case al: case cl: case dl: case bl: \	case ah: case ch: case dh: case bh: \            emit8((x)); \	    break; \	case eax: case ecx: case edx: case ebx: \	case esp: case ebp: case esi: case edi: \	    emit8((x)+1); \	    break; \    }//---Instructions----------------------------------------------------------#define sivoid static inline voidclass x86 {private:    static CODEBLOCK *block;    static u32 offset;    //---ModRM-generic handlers    sivoid mrm_reg_reg(X86Reg r, X86Reg s)    {        emit8(ModRM(3, s, r));    }        sivoid mrm_reg_mem(X86Reg r, X86Reg base)    {        emit8(ModRM(0, r, base));    }        sivoid mrm_reg_mem(X86Reg r, u32 disp)    {        emit8(ModRM(0, r, 5));        emit32(disp);    }    sivoid mrm_reg_mem(X86Reg r, X86Reg base, u8 disp)    {        emit8(ModRM(1, r, base));        emit8(disp);    }        sivoid mrm_reg_mem(X86Reg r, X86Reg base, u32 disp)    {        emit8(ModRM(2, r, base));        emit32(disp);    }        sivoid mrm_reg_mem(X86Reg r, X86Reg base, X86Reg idx, int scale)    {        emit8(ModRM(0, r, 4));        switch(scale)        {            case 1: emit8(ModRM(0, idx, base)); break;            case 2: emit8(ModRM(1, idx, base)); break;            case 4: emit8(ModRM(2, idx, base)); break;            case 8: emit8(ModRM(3, idx, base)); break;        }    }        sivoid mrm_reg_mem(X86Reg r, X86Reg base, X86Reg idx, int scale, u8 disp)    {        emit8(ModRM(1, r, 4));        switch(scale)        {            case 1: emit8(ModRM(0, idx, base)); break;            case 2: emit8(ModRM(1, idx, base)); break;            case 4: emit8(ModRM(2, idx, base)); break;            case 8: emit8(ModRM(3, idx, base)); break;        }        emit8(disp);    }        sivoid mrm_reg_mem(X86Reg r, X86Reg base, X86Reg idx, int scale, u32 disp)    {        emit8(ModRM(2, r, 4));        switch(scale)        {            case 1: emit8(ModRM(0, idx, base)); break;            case 2: emit8(ModRM(1, idx, base)); break;            case 4: emit8(ModRM(2, idx, base)); break;            case 8: emit8(ModRM(3, idx, base)); break;        }        emit32(disp);    }    public:    static void setblock(CODEBLOCK* blk)    {        block = blk;	offset = 0;	blk->target_size = 0;    }        sivoid emit8(u8 v) { block->target_addr[offset++]=v; (block->target_size)++; /*printf("EMIT %02X\n",v);*/ }    sivoid emit16(u16 v) { emit8(v&255); emit8(v>>8); }    sivoid emit32(u32 v) { emit8(v&255); emit8((v>>8)&255); emit8((v>>16)&255); emit8(v>>24); }    //---Implied addressing    sivoid imp(u16 op)    {	if(op&0xFF00) emit16(op);	else emit8(op);    }    //---Dataproc-specific ModRM addressing    sivoid dp_reg_reg(int op, X86Reg r, X86Reg s)    {	SIZECHECK(op*8); mrm_reg_reg(r, s);    }        sivoid dp_mem_reg(int op, X86Reg base, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, base);    }        sivoid dp_mem_reg(int op, u32 disp, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, disp);    }        sivoid dp_mem_reg(int op, X86Reg base, u8 disp, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, base, disp);    }        sivoid dp_mem_reg(int op, X86Reg base, u32 disp, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, base, disp);    }        sivoid dp_mem_reg(int op, X86Reg base, X86Reg idx, int scale, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, base, idx, scale);    }        sivoid dp_mem_reg(int op, X86Reg base, X86Reg idx, int scale, u8 disp, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, base, idx, scale, disp);    }        sivoid dp_mem_reg(int op, X86Reg base, X86Reg idx, int scale, u32 disp, X86Reg r)    {        SIZECHECK(op*8); mrm_reg_mem(r, base, idx, scale, disp);    }        sivoid dp_reg_mem(int op, X86Reg r, X86Reg base)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, base);    }        sivoid dp_reg_mem(int op, X86Reg r, u32 disp)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, disp);    }        sivoid dp_reg_mem(int op, X86Reg r, X86Reg base, u8 disp)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, base, disp);    }        sivoid dp_reg_mem(int op, X86Reg r, X86Reg base, u32 disp)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, base, disp);    }        sivoid dp_reg_mem(int op, X86Reg r, X86Reg base, X86Reg idx, int scale)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, base, idx, scale);    }        sivoid dp_reg_mem(int op, X86Reg r, X86Reg base, X86Reg idx, int scale, u8 disp)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, base, idx, scale, disp);    }        sivoid dp_reg_mem(int op, X86Reg r, X86Reg base, X86Reg idx, int scale, u32 disp)    {        SIZECHECK(op*8+2); mrm_reg_mem(r, base, idx, scale, disp);    }        sivoid dp_reg_imm(int op, X86Reg r, u8 imm)    {	if(r==al) { emit8(op*8+4); emit8(imm); }	else      { emit8(0x80); mrm_reg_reg(r, (X86Reg)op); emit8(imm); }    }        sivoid dp_reg_imm(int op, X86Reg r, u32 imm)    {	if(r==eax) { emit8(op*8+5); emit32(imm); }	else       { emit8(0x81); mrm_reg_reg(r, (X86Reg)op); emit32(imm); }    }        sivoid dp_mem_imm(int op, X86Reg base, u8 imm)    {	emit8(0x80); mrm_reg_mem((X86Reg)op, base); emit8(imm);    }    sivoid dp_mem_imm(int op, X86Reg base, u32 imm)    {	emit8(0x81); mrm_reg_mem((X86Reg)op, base); emit32(imm);    }        sivoid dp_mem_imm(int op, u32 disp, u8 imm)    {        emit8(0x80); mrm_reg_mem((X86Reg)op, disp); emit8(imm);    }        sivoid dp_mem_imm(int op, u32 disp, u32 imm)    {        emit8(0x81); mrm_reg_mem((X86Reg)op, disp); emit32(imm);    }        sivoid dp_mem_imm(int op, X86Reg base, u8 disp, u8 imm)    {	emit8(0x80); mrm_reg_mem((X86Reg)op, base, disp); emit8(imm);    }        sivoid dp_mem_imm(int op, X86Reg base, u32 disp, u8 imm)    {	emit8(0x80); mrm_reg_mem((X86Reg)op, base, disp); emit8(imm);    }    sivoid dp_mem_imm(int op, X86Reg base, u8 disp, u32 imm)    {	emit8(0x81); mrm_reg_mem((X86Reg)op, base, disp); emit32(imm);    }    sivoid dp_mem_imm(int op, X86Reg base, u32 disp, u32 imm)    {	emit8(0x81); mrm_reg_mem((X86Reg)op, base, disp); emit32(imm);    }        sivoid dp_mem_imm(int op, X86Reg base, X86Reg idx, int scale, u8 imm)    {        emit8(0x80); mrm_reg_mem((X86Reg)op, base, idx, scale); emit8(imm);    }       sivoid dp_mem_imm(int op, X86Reg base, X86Reg idx, int scale, u32 imm)    {        emit8(0x81); mrm_reg_mem((X86Reg)op, base, idx, scale); emit32(imm);    }       sivoid dp_mem_imm(int op, X86Reg base, X86Reg idx, int scale, u8 disp, u8 imm)    {        emit8(0x80); mrm_reg_mem((X86Reg)op, base, idx, scale, disp); emit8(imm);    }        sivoid dp_mem_imm(int op, X86Reg base, X86Reg idx, int scale, u8 disp, u32 imm)    {        emit8(0x81); mrm_reg_mem((X86Reg)op, base, idx, scale, disp); emit32(imm);    }        sivoid dp_mem_imm(int op, X86Reg base, X86Reg idx, int scale, u32 disp, u8 imm)    {        emit8(0x80); mrm_reg_mem((X86Reg)op, base, idx, scale, disp); emit8(imm);    }        sivoid dp_mem_imm(int op, X86Reg base, X86Reg idx, int scale, u32 disp, u32 imm)    {        emit8(0x81); mrm_reg_mem((X86Reg)op, base, idx, scale, disp); emit32(imm);    }        //---Shift-specific ModRM encodings    sivoid shft_reg_imm(int op, X86Reg r, u8 imm)    {	if(imm>1) { SIZECHECK(0xC0); emit8(ModRM(3, op&7, r)); emit8(imm); }	else      { SIZECHECK(0xD0); emit8(ModRM(3, op&7, r));             }    }        sivoid shft_memb_imm(int op, X86Reg base, u8 imm)    {	if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, base); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, base);             }    }    sivoid shft_memb_imm(int op, u32 disp, u8 imm)    {        if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, disp); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, disp);             }    }        sivoid shft_memb_imm(int op, X86Reg base, u8 disp, u8 imm)    {	if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, base, disp); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, base, disp);             }    }        sivoid shft_memb_imm(int op, X86Reg base, u32 disp, u8 imm)    {	if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, base, disp); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, base, disp);             }    }    sivoid shft_memb_imm(int op, X86Reg base, X86Reg idx, int scale, u8 imm)    {        if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, base, idx, scale); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, base, idx, scale);             }    }       sivoid shft_memb_imm(int op, X86Reg base, X86Reg idx, int scale, u8 disp, u8 imm)    {        if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, base, idx, scale, disp); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, base, idx, scale, disp);             }    }        sivoid shft_memb_imm(int op, X86Reg base, X86Reg idx, int scale, u32 disp, u8 imm)    {        if(imm>1) { emit8(0xC0); mrm_reg_mem((X86Reg)op, base, idx, scale, disp); emit8(imm); }	else      { emit8(0xD0); mrm_reg_mem((X86Reg)op, base, idx, scale, disp);             }    }        sivoid shft_memd_imm(int op, X86Reg base, u8 imm)    {	if(imm>1) { emit8(0xC1); mrm_reg_mem((X86Reg)op, base); emit8(imm); }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区蜜臀| 精品在线亚洲视频| 蜜桃av一区二区在线观看| 韩国欧美一区二区| 色欧美乱欧美15图片| 欧美浪妇xxxx高跟鞋交| 久久久天堂av| 亚洲综合一区二区精品导航| 裸体健美xxxx欧美裸体表演| 盗摄精品av一区二区三区| 欧美性xxxxx极品少妇| 久久综合色天天久久综合图片| 亚洲欧美一区二区三区国产精品| 美女视频黄 久久| 91在线视频播放地址| 日韩女优毛片在线| 一个色综合av| 国产精品18久久久| 欧美高清视频www夜色资源网| 日本一区二区三区四区在线视频| 婷婷一区二区三区| 成人福利视频网站| 91精品国产91久久综合桃花| 国产精品久久久久国产精品日日| 日本不卡免费在线视频| 一道本成人在线| 久久精品一区八戒影视| 午夜精品久久久久久久| 91在线视频在线| 国产亚洲一区二区三区| 日韩电影免费在线看| 91视视频在线直接观看在线看网页在线看| 日韩三级视频在线看| 一级日本不卡的影视| 粉嫩一区二区三区性色av| 欧美一区二区黄色| 亚洲免费色视频| 国产91精品一区二区麻豆网站| 91精品综合久久久久久| 一区二区欧美精品| 97国产一区二区| 国产农村妇女精品| 狠狠色丁香久久婷婷综合_中| 欧美日韩一区二区在线视频| 中文字幕视频一区| 成人黄色小视频| 国产午夜精品一区二区三区四区| 久久国产欧美日韩精品| 欧美日韩夫妻久久| 一区二区激情小说| 色婷婷精品久久二区二区蜜臂av| 国产精品久久久久影院亚瑟| 高清国产一区二区三区| 久久久不卡网国产精品一区| 久久不见久久见中文字幕免费| 欧美日韩国产123区| 一区二区三区.www| 在线观看免费一区| 亚洲日本在线看| 97久久久精品综合88久久| 中文字幕第一区综合| 国产宾馆实践打屁股91| 日本一区二区视频在线| 国产精品456| 中文字幕精品一区二区三区精品| 国产酒店精品激情| 国产日韩精品视频一区| 高清久久久久久| 中文字幕精品一区二区三区精品| 成人动漫视频在线| 国产精品国产成人国产三级| 92国产精品观看| 亚洲另类在线一区| 在线观看欧美精品| 午夜激情久久久| 欧美一区二区三区免费在线看| 麻豆freexxxx性91精品| 精品久久久久久久久久久院品网| 国产在线播放一区三区四| 国产亚洲成年网址在线观看| 福利一区二区在线观看| 中文字幕制服丝袜成人av| aaa欧美大片| 一区二区三区产品免费精品久久75| 欧美少妇一区二区| 免费观看在线色综合| 精品日韩一区二区三区免费视频| 韩国成人福利片在线播放| 欧美国产禁国产网站cc| 色婷婷综合五月| 视频在线观看国产精品| 欧美电视剧在线观看完整版| 国产一区二三区| 亚洲欧洲成人精品av97| 欧美中文一区二区三区| 免费看欧美美女黄的网站| 久久久777精品电影网影网| jlzzjlzz亚洲日本少妇| 亚洲久草在线视频| 91精品国产一区二区三区香蕉 | 99re这里只有精品首页| 一区二区三区免费网站| 欧美一区二区视频在线观看 | 欧美韩国日本不卡| 色婷婷久久一区二区三区麻豆| 午夜精品久久久久久久| 久久天堂av综合合色蜜桃网| 91最新地址在线播放| 丝袜美腿亚洲综合| 久久亚洲精品国产精品紫薇| 91亚洲精品久久久蜜桃网站| 亚洲国产一二三| 久久久久久亚洲综合| 欧美中文字幕一区| 国内精品第一页| 亚洲精品高清在线| 精品第一国产综合精品aⅴ| 97久久精品人人爽人人爽蜜臀| 亚洲国产aⅴ天堂久久| 久久九九国产精品| 欧美日韩一区二区不卡| 国产九色sp调教91| 污片在线观看一区二区| 中文字幕第一区二区| 欧美一区二区二区| 色偷偷成人一区二区三区91 | 国产欧美精品一区二区色综合朱莉 | 欧美性大战xxxxx久久久| 精东粉嫩av免费一区二区三区| 国产精品护士白丝一区av| 5566中文字幕一区二区电影| 99久久久国产精品免费蜜臀| 奇米精品一区二区三区四区 | 成人97人人超碰人人99| 蜜臀久久99精品久久久画质超高清 | 麻豆一区二区在线| 亚洲免费观看高清完整版在线 | 国产米奇在线777精品观看| 一区二区三区在线观看动漫| 国产亚洲精品久| 欧美高清dvd| 91国模大尺度私拍在线视频| 东方aⅴ免费观看久久av| 蜜臀久久久久久久| 亚洲高清三级视频| 亚洲欧美自拍偷拍色图| 精品久久久久久久久久久久久久久 | 久久亚洲二区三区| 91麻豆精品国产91| 色菇凉天天综合网| 国产999精品久久久久久| 美国av一区二区| 视频一区二区国产| 一区二区三区国产精品| 中文字幕五月欧美| 国产女人18毛片水真多成人如厕| 欧美成人激情免费网| 欧美日本一道本| 欧美色图12p| 欧美在线小视频| 91理论电影在线观看| 成人av网站免费| 国产激情一区二区三区四区| 久久福利资源站| 裸体一区二区三区| 美日韩一区二区| 日韩成人一区二区三区在线观看| 亚洲午夜免费电影| 亚洲中国最大av网站| 夜夜操天天操亚洲| 亚洲宅男天堂在线观看无病毒| 亚洲欧美日韩综合aⅴ视频| 国产精品成人一区二区艾草 | 99麻豆久久久国产精品免费优播| 国产成人av福利| 国产一区二区调教| 精品伊人久久久久7777人| 青青草原综合久久大伊人精品| 午夜免费久久看| 视频在线观看一区| 男女男精品视频| 久久99热国产| 激情小说欧美图片| 久久国产精品露脸对白| 韩国视频一区二区| 国产福利电影一区二区三区| 久久 天天综合| 国产高清亚洲一区| 国产91丝袜在线播放0| 成人av电影在线| 色94色欧美sute亚洲13| 欧美亚洲综合在线| 欧美日韩不卡视频| 欧美一级一级性生活免费录像| 日韩欧美一区二区不卡| 精品国产免费人成在线观看| 国产女人aaa级久久久级| 中文字幕一区二区在线播放| 亚洲黄色在线视频| 亚洲成av人片|