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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? decode.c

?? Ksplice is practical technology for updating the Linux kernel without rebooting. It enables you to a
?? C
?? 第 1 頁 / 共 3 頁
字號:
            decode_o(u, mop2s, &(iop[1]));        break;    /* rAX[r8]..rDI[r15], I/rAX..rDI/O */    case OP_rAXr8 : case OP_rCXr9 : case OP_rDXr10 : case OP_rBXr11 :    case OP_rSPr12: case OP_rBPr13: case OP_rSIr14 : case OP_rDIr15 :    case OP_rAX : case OP_rCX : case OP_rDX : case OP_rBX :    case OP_rSP : case OP_rBP : case OP_rSI : case OP_rDI :        iop[0].type = UD_OP_REG;        iop[0].base = resolve_gpr64(u, mop1t);        if (mop2t == OP_I)            decode_imm(u, mop2s, &(iop[1]));        else if (mop2t >= OP_rAX && mop2t <= OP_rDI) {            iop[1].type = UD_OP_REG;            iop[1].base = resolve_gpr64(u, mop2t);        }        else if (mop2t == OP_O) {            decode_o(u, mop2s, &(iop[1]));              iop[0].size = resolve_operand_size(u, mop2s);        }        break;    /* AL[r8b]..BH[r15b], I */    case OP_ALr8b : case OP_CLr9b : case OP_DLr10b : case OP_BLr11b :    case OP_AHr12b: case OP_CHr13b: case OP_DHr14b : case OP_BHr15b :    {        ud_type_t gpr = (mop1t - OP_ALr8b) + UD_R_AL +                         (REX_B(u->pfx_rex) << 3);        if (UD_R_AH <= gpr && u->pfx_rex)            gpr = gpr + 4;        iop[0].type = UD_OP_REG;        iop[0].base = gpr;        if (mop2t == OP_I)            decode_imm(u, mop2s, &(iop[1]));        break;    }    /* eAX..eDX, DX/I */    case OP_eAX : case OP_eCX : case OP_eDX : case OP_eBX :    case OP_eSP : case OP_eBP : case OP_eSI : case OP_eDI :        iop[0].type = UD_OP_REG;        iop[0].base = resolve_gpr32(u, mop1t);        if (mop2t == OP_DX) {            iop[1].type = UD_OP_REG;            iop[1].base = UD_R_DX;            iop[1].size = 16;        } else if (mop2t == OP_I)            decode_imm(u, mop2s, &(iop[1]));        break;    /* ES..GS */    case OP_ES : case OP_CS : case OP_DS :    case OP_SS : case OP_FS : case OP_GS :        /* in 64bits mode, only fs and gs are allowed */        if (u->dis_mode == 64)            if (mop1t != OP_FS && mop1t != OP_GS)                u->error= 1;        iop[0].type = UD_OP_REG;        iop[0].base = (mop1t - OP_ES) + UD_R_ES;        iop[0].size = 16;        break;    /* J */    case OP_J :        decode_imm(u, mop1s, &(iop[0]));                iop[0].type = UD_OP_JIMM;        break ;    /* PR, I */    case OP_PR:        if (MODRM_MOD(inp_peek(u)) != 3)            u->error = 1;        decode_modrm(u, &(iop[0]), mop1s, T_MMX, NULL, 0, T_NONE);        if (mop2t == OP_I)            decode_imm(u, mop2s, &(iop[1]));        break;     /* VR, I */    case OP_VR:        if (MODRM_MOD(inp_peek(u)) != 3)            u->error = 1;        decode_modrm(u, &(iop[0]), mop1s, T_XMM, NULL, 0, T_NONE);        if (mop2t == OP_I)            decode_imm(u, mop2s, &(iop[1]));        break;     /* P, Q[,I]/W/E[,I],VR */    case OP_P :        if (mop2t == OP_Q) {            decode_modrm(u, &(iop[1]), mop2s, T_MMX, &(iop[0]), mop1s, T_MMX);            if (mop3t == OP_I)                decode_imm(u, mop3s, &(iop[2]));        } else if (mop2t == OP_W) {            decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_MMX);        } else if (mop2t == OP_VR) {            if (MODRM_MOD(inp_peek(u)) != 3)                u->error = 1;            decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_MMX);        } else if (mop2t == OP_E) {            decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_MMX);            if (mop3t == OP_I)                decode_imm(u, mop3s, &(iop[2]));        }        break;    /* R, C/D */    case OP_R :        if (mop2t == OP_C)            decode_modrm(u, &(iop[0]), mop1s, T_GPR, &(iop[1]), mop2s, T_CRG);        else if (mop2t == OP_D)            decode_modrm(u, &(iop[0]), mop1s, T_GPR, &(iop[1]), mop2s, T_DBG);        break;    /* C, R */    case OP_C :        decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_CRG);        break;    /* D, R */    case OP_D :        decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_DBG);        break;    /* Q, P */    case OP_Q :        decode_modrm(u, &(iop[0]), mop1s, T_MMX, &(iop[1]), mop2s, T_MMX);        break;    /* S, E */    case OP_S :        decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_SEG);        break;    /* W, V */    case OP_W :        decode_modrm(u, &(iop[0]), mop1s, T_XMM, &(iop[1]), mop2s, T_XMM);        break;    /* V, W[,I]/Q/M/E */    case OP_V :        if (mop2t == OP_W) {            /* special cases for movlps and movhps */            if (MODRM_MOD(inp_peek(u)) == 3) {                if (u->mnemonic == UD_Imovlps)                    u->mnemonic = UD_Imovhlps;                else                if (u->mnemonic == UD_Imovhps)                    u->mnemonic = UD_Imovlhps;            }            decode_modrm(u, &(iop[1]), mop2s, T_XMM, &(iop[0]), mop1s, T_XMM);            if (mop3t == OP_I)                decode_imm(u, mop3s, &(iop[2]));        } else if (mop2t == OP_Q)            decode_modrm(u, &(iop[1]), mop2s, T_MMX, &(iop[0]), mop1s, T_XMM);        else if (mop2t == OP_M) {            if (MODRM_MOD(inp_peek(u)) == 3)                u->error= 1;            decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_XMM);        } else if (mop2t == OP_E) {            decode_modrm(u, &(iop[1]), mop2s, T_GPR, &(iop[0]), mop1s, T_XMM);        } else if (mop2t == OP_PR) {            decode_modrm(u, &(iop[1]), mop2s, T_MMX, &(iop[0]), mop1s, T_XMM);        }        break;    /* DX, eAX/AL */    case OP_DX :        iop[0].type = UD_OP_REG;        iop[0].base = UD_R_DX;        iop[0].size = 16;        if (mop2t == OP_eAX) {            iop[1].type = UD_OP_REG;                iop[1].base = resolve_gpr32(u, mop2t);        } else if (mop2t == OP_AL) {            iop[1].type = UD_OP_REG;            iop[1].base = UD_R_AL;            iop[1].size = 8;        }        break;    /* I, I/AL/eAX */    case OP_I :        decode_imm(u, mop1s, &(iop[0]));        if (mop2t == OP_I)            decode_imm(u, mop2s, &(iop[1]));        else if (mop2t == OP_AL) {            iop[1].type = UD_OP_REG;            iop[1].base = UD_R_AL;            iop[1].size = 16;        } else if (mop2t == OP_eAX) {            iop[1].type = UD_OP_REG;                iop[1].base = resolve_gpr32(u, mop2t);        }        break;    /* O, AL/eAX */    case OP_O :        decode_o(u, mop1s, &(iop[0]));        iop[1].type = UD_OP_REG;        iop[1].size = resolve_operand_size(u, mop1s);        if (mop2t == OP_AL)            iop[1].base = UD_R_AL;        else if (mop2t == OP_eAX)            iop[1].base = resolve_gpr32(u, mop2t);        else if (mop2t == OP_rAX)            iop[1].base = resolve_gpr64(u, mop2t);              break;    /* 3 */    case OP_I3 :        iop[0].type = UD_OP_CONST;        iop[0].lval.sbyte = 3;        break;    /* ST(n), ST(n) */    case OP_ST0 : case OP_ST1 : case OP_ST2 : case OP_ST3 :    case OP_ST4 : case OP_ST5 : case OP_ST6 : case OP_ST7 :        iop[0].type = UD_OP_REG;        iop[0].base = (mop1t-OP_ST0) + UD_R_ST0;        iop[0].size = 0;        if (mop2t >= OP_ST0 && mop2t <= OP_ST7) {            iop[1].type = UD_OP_REG;            iop[1].base = (mop2t-OP_ST0) + UD_R_ST0;            iop[1].size = 0;        }        break;    /* AX */    case OP_AX:        iop[0].type = UD_OP_REG;        iop[0].base = UD_R_AX;        iop[0].size = 16;        break;    /* none */    default :        iop[0].type = iop[1].type = iop[2].type = UD_NONE;  }  return 0;}/* ----------------------------------------------------------------------------- * clear_insn() - clear instruction pointer  * ----------------------------------------------------------------------------- */static int clear_insn(register struct ud* u){  u->error     = 0;  u->pfx_seg   = 0;  u->pfx_opr   = 0;  u->pfx_adr   = 0;  u->pfx_lock  = 0;  u->pfx_repne = 0;  u->pfx_rep   = 0;  u->pfx_repe  = 0;  u->pfx_seg   = 0;  u->pfx_rex   = 0;  u->pfx_insn  = 0;  u->mnemonic  = UD_Inone;  u->itab_entry = NULL;  memset( &u->operand[ 0 ], 0, sizeof( struct ud_operand ) );  memset( &u->operand[ 1 ], 0, sizeof( struct ud_operand ) );  memset( &u->operand[ 2 ], 0, sizeof( struct ud_operand ) );   return 0;}static int do_mode( struct ud* u ){  /* if in error state, bail out */  if ( u->error ) return -1;   /* propagate perfix effects */  if ( u->dis_mode == 64 ) {  /* set 64bit-mode flags */    /* Check validity of  instruction m64 */    if ( P_INV64( u->itab_entry->prefix ) ) {        u->error = 1;        return -1;    }    /* effective rex prefix is the  effective mask for the      * instruction hard-coded in the opcode map.     */    u->pfx_rex = ( u->pfx_rex & 0x40 ) |                  ( u->pfx_rex & REX_PFX_MASK( u->itab_entry->prefix ) );     /* whether this instruction has a default operand size of      * 64bit, also hardcoded into the opcode map.     */    u->default64 = P_DEF64( u->itab_entry->prefix );     /* calculate effective operand size */    if ( REX_W( u->pfx_rex ) ) {        u->opr_mode = 64;    } else if ( u->pfx_opr ) {        u->opr_mode = 16;    } else {        /* unless the default opr size of instruction is 64,         * the effective operand size in the absence of rex.w         * prefix is 32.         */        u->opr_mode = ( u->default64 ) ? 64 : 32;    }    /* calculate effective address size */    u->adr_mode = (u->pfx_adr) ? 32 : 64;  } else if ( u->dis_mode == 32 ) { /* set 32bit-mode flags */    u->opr_mode = ( u->pfx_opr ) ? 16 : 32;    u->adr_mode = ( u->pfx_adr ) ? 16 : 32;  } else if ( u->dis_mode == 16 ) { /* set 16bit-mode flags */    u->opr_mode = ( u->pfx_opr ) ? 32 : 16;    u->adr_mode = ( u->pfx_adr ) ? 32 : 16;  }  /* These flags determine which operand to apply the operand size   * cast to.   */  u->c1 = ( P_C1( u->itab_entry->prefix ) ) ? 1 : 0;  u->c2 = ( P_C2( u->itab_entry->prefix ) ) ? 1 : 0;  u->c3 = ( P_C3( u->itab_entry->prefix ) ) ? 1 : 0;  /* set flags for implicit addressing */  u->implicit_addr = P_IMPADDR( u->itab_entry->prefix );  return 0;}static int gen_hex( struct ud *u ){  unsigned int i;  unsigned char *src_ptr = inp_sess( u );  char* src_hex;  /* bail out if in error stat. */  if ( u->error ) return -1;   /* output buffer pointe */  src_hex = ( char* ) u->insn_hexcode;  /* for each byte used to decode instruction */  for ( i = 0; i < u->inp_ctr; ++i, ++src_ptr) {    sprintf( src_hex, "%02x", *src_ptr & 0xFF );    src_hex += 2;  }  return 0;}/* ============================================================================= * ud_decode() - Instruction decoder. Returns the number of bytes decoded. * ============================================================================= */unsigned int ud_decode( struct ud* u ){  inp_start(u);  if ( clear_insn( u ) ) {    ; /* error */  } else if ( get_prefixes( u ) != 0 ) {    ; /* error */  } else if ( search_itab( u ) != 0 ) {    ; /* error */  } else if ( do_mode( u ) != 0 ) {    ; /* error */  } else if ( disasm_operands( u ) != 0 ) {    ; /* error */  } else if ( resolve_mnemonic( u ) != 0 ) {    ; /* error */  }  /* Handle decode error. */  if ( u->error ) {    /* clear out the decode data. */    clear_insn( u );    /* mark the sequence of bytes as invalid. */    u->itab_entry = & ie_invalid;    u->mnemonic = u->itab_entry->mnemonic;  }   u->insn_offset = u->pc; /* set offset of instruction */  u->insn_fill = 0;   /* set translation buffer index to 0 */  u->pc += u->inp_ctr;    /* move program counter by bytes decoded */  gen_hex( u );       /* generate hex code */  /* return number of bytes disassembled. */  return u->inp_ctr;}/* vim:cindent * vim:ts=4 * vim:sw=4 * vim:expandtab */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线视频| 精品福利一区二区三区| 成人综合在线视频| 激情五月婷婷综合| 精油按摩中文字幕久久| 久久69国产一区二区蜜臀| 另类中文字幕网| 免费欧美高清视频| 精品一区二区三区免费视频| 免费看日韩精品| 久久99国产精品尤物| 国产一区二区三区四区五区入口| 国产真实乱偷精品视频免| 国产精品乡下勾搭老头1| 国产电影一区在线| 成人伦理片在线| 91丨九色porny丨蝌蚪| 91久久国产综合久久| 欧美日韩一区二区三区四区五区| 欧美色倩网站大全免费| 日韩三级免费观看| 久久夜色精品国产噜噜av| 久久久久97国产精华液好用吗| 久久精品在线观看| 中文字幕佐山爱一区二区免费| 亚洲资源中文字幕| 三级精品在线观看| 精品午夜一区二区三区在线观看| 国产精品一二三四区| av影院午夜一区| 欧美午夜精品一区二区蜜桃| 91精品国产色综合久久ai换脸| 日韩欧美成人一区| 国产精品伦理在线| 亚洲曰韩产成在线| 99精品视频在线播放观看| 色婷婷综合久久久久中文一区二区 | 亚洲成av人**亚洲成av**| 日韩精品亚洲专区| 大桥未久av一区二区三区中文| 色综合网色综合| 日韩一二三区视频| 国产精品久久久久久一区二区三区| 亚洲欧美激情小说另类| 日韩高清在线电影| 成人激情电影免费在线观看| 欧美日韩精品综合在线| 久久夜色精品国产噜噜av| 综合激情成人伊人| 久久99热国产| 欧美综合欧美视频| 国产日韩一级二级三级| 亚洲高清一区二区三区| 国产v综合v亚洲欧| 91精品欧美一区二区三区综合在| 老司机午夜精品99久久| av中文字幕一区| 欧美一级高清大全免费观看| 国产精品久久久久影院老司 | 人人超碰91尤物精品国产| 丁香婷婷综合色啪| 3atv一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 午夜一区二区三区视频| 国产凹凸在线观看一区二区| 制服丝袜国产精品| √…a在线天堂一区| 极品少妇xxxx精品少妇| 欧美色电影在线| 国产精品伦理一区二区| 国内精品视频一区二区三区八戒| 欧美亚洲综合另类| 中文字幕色av一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 欧美老女人第四色| 亚洲精品视频一区| 成人性视频免费网站| 欧美精品一区二区在线观看| 婷婷六月综合网| 色哟哟一区二区三区| 国产精品剧情在线亚洲| 国内精品免费在线观看| 日韩午夜电影av| 性做久久久久久免费观看 | 精品99久久久久久| 青青草国产成人99久久| 综合久久久久久久| 色婷婷精品久久二区二区蜜臀av| 国产在线精品视频| 欧美日韩一级片在线观看| 国产欧美精品区一区二区三区| 免费美女久久99| 欧美日韩亚州综合| 亚洲国产中文字幕| 欧美中文字幕不卡| 亚洲精品欧美二区三区中文字幕| 99re66热这里只有精品3直播 | 国产老妇另类xxxxx| 欧美电视剧免费全集观看| 午夜精品一区二区三区三上悠亚| 色av综合在线| 日韩理论电影院| 97久久人人超碰| 亚洲欧美视频一区| 色av一区二区| 亚洲国产精品久久一线不卡| 欧美综合欧美视频| 亚洲成va人在线观看| 欧美日韩精品欧美日韩精品| 亚洲一区二区欧美日韩| 欧美日韩极品在线观看一区| 日韩精品一二区| 日韩精品一区二区三区在线播放 | 欧美日韩国产精品自在自线| 亚洲第一狼人社区| 欧美精品三级在线观看| 日韩精品一二三区| 欧美大片在线观看一区二区| 国产裸体歌舞团一区二区| 国产欧美日韩综合精品一区二区| 国产成人免费视频网站高清观看视频| 国产性色一区二区| 本田岬高潮一区二区三区| 亚洲天堂网中文字| 欧美日韩一区二区在线视频| 日韩精彩视频在线观看| 精品久久久久99| 成人中文字幕电影| 亚洲精品国久久99热| 91.xcao| 国产精品影视网| 国产精品美女www爽爽爽| 欧洲av在线精品| 老司机精品视频导航| 中文字幕在线一区二区三区| 欧美性生活久久| 久久国产日韩欧美精品| 国产精品污www在线观看| 一本一道波多野结衣一区二区| 亚洲成人免费视频| 久久久蜜臀国产一区二区| 91在线观看污| 奇米精品一区二区三区四区| 欧美国产精品久久| 欧美午夜精品免费| 国产九色精品成人porny| 亚洲人成精品久久久久久| 777久久久精品| 成人午夜av电影| 天天做天天摸天天爽国产一区| 久久影院午夜片一区| 91免费观看视频| 麻豆极品一区二区三区| 亚洲美女屁股眼交3| 日韩一区二区在线观看视频| 不卡av在线网| 久久精品国产色蜜蜜麻豆| 亚洲欧洲制服丝袜| 亚洲精品一线二线三线无人区| 91香蕉视频在线| 激情图片小说一区| 亚洲国产欧美在线人成| 国产网红主播福利一区二区| 欧美色综合网站| 岛国一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美精品v国产精品v日韩精品| 国产精品亚洲人在线观看| 日韩中文字幕不卡| 亚洲日本电影在线| 久久久午夜电影| 91精品国产综合久久精品| 97aⅴ精品视频一二三区| 极品少妇一区二区| 亚洲成人免费在线观看| 136国产福利精品导航| 久久精品亚洲麻豆av一区二区| 欧美男人的天堂一二区| 91蜜桃在线观看| 国产电影精品久久禁18| 蜜臀av性久久久久av蜜臀妖精| 樱花草国产18久久久久| 国产精品卡一卡二| 国产日韩精品一区| 日韩一区二区三区电影在线观看 | 精品视频一区二区不卡| 97久久精品人人做人人爽50路| 国产一区二区三区最好精华液| 丝袜亚洲精品中文字幕一区| 亚洲精选在线视频| 国产精品乱人伦一区二区| 久久久欧美精品sm网站| 日韩美女主播在线视频一区二区三区| 欧美天堂一区二区三区| 91一区二区三区在线播放| 9l国产精品久久久久麻豆| 高清成人在线观看| 国产91色综合久久免费分享| 韩国一区二区视频| 国产毛片一区二区|