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

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

?? prefix-x86.c

?? It s a Linux disassemble, can set break point, disassemble ELF file.
?? C
字號:
/* * libDASM * * Copyright (C) 2000-2003 Patrick Alken * This library comes with absolutely NO WARRANTY * * Should you choose to use and/or modify this source code, please * do so under the terms of the GNU General Public License under which * this library is distributed. * * $Id: prefix-x86.c,v 1.1.1.1 2004/04/26 00:40:09 pa33 Exp $ */#include <stdio.h>#include <assert.h>#include "regs-x86.h"#include "prefix-x86.h"#include "operands-x86.h"/* * Top-level includes */#include "libDASM.h"/* * If any of these bytes follow a REP (0xF3) prefix, use * REPE instead of REP */int prefixREPE[] = {  0xA6,  0xA7,  0xAE,  0xAF,  (-1)};/*x86processPrefix()  Called from x86findOpCode() to determine if there is a prefixin front of the opcode being disassembled. If so, toggle thecorrect flags in ws->prefixFlags.Inputs: ws   - disasm workspace        data - buffer containing opcodeReturn: number of bytes in prefix*/unsigned charx86processPrefix(struct disasmWorkspace *ws, unsigned char *data){  unsigned char numBytes;  int done;  unsigned char byte;  assert(ws && data);  numBytes = 0;  done = 0;  while (!done)  {    byte = *data++;    switch (byte)    {      /*       * Indicates operand size override. If in 16 bit mode,       * instructions with 32 bit operands will be chosen over       * those with 16 bit operands. If in 32 bit mode, instructions       * with 16 bit operands will be chosen over those with 32       * bit operands.       */      case 0x66:      {        ws->prefixFlags |= PX_OPOVER;        ++numBytes;        break;      } /* case 0x66 */      /*       * Addressing size override. If in 16 bit mode, 32 bit addressing       * will be used and vice versa.       */      case 0x67:      {        ws->prefixFlags |= PX_ADDROVER;        ++numBytes;        break;      } /* case 0x67 */      /*       * lock prefix       */      case 0xF0:      {        ws->prefixFlags |= PX_LOCK;        ++numBytes;        break;      } /* case 0xF0 */      /*       * Indicates a REPNE (repeat while not equal) prefix       */      case 0xF2:      {        /*         * If we have an "F2 0F ..." situation, the F2 is         * not a prefix but part of the opcode of an SSE         * instruction.         */        if (*data == 0x0F)        {          done = 1;          break;        }        ws->prefixFlags |= PX_REPNE;        ++numBytes;        break;      } /* case 0xF2 */      /*       * Indicates a REP or REPE prefix       */      case 0xF3:      {        int *tmp;        unsigned int flag;        /*         * If we have an "F3 0F ..." situation, the F3 is         * not a prefix but part of the opcode of an SSE         * instruction.         */        if (*data == 0x0F)        {          done = 1;          break;        }        flag = PX_REP;        for (tmp = prefixREPE; *tmp != (-1); ++tmp)        {          if ((unsigned int) *data == (unsigned int) *tmp)            flag = PX_REPE;        }        ws->prefixFlags |= flag;        ++numBytes;        break;      } /* case 0xF3 */      /*       * Segment overrides       */      case 0x2E:        /* cs */      {        ws->prefixFlags |= PX_SEGOVER;        ws->segmentOverride = R_CS;        ++numBytes;        break;      } /* case 0x2E */      case 0x36:        /* ss */      {        ws->prefixFlags |= PX_SEGOVER;        ws->segmentOverride = R_SS;        ++numBytes;        break;      } /* case 0x36 */      case 0x3E:        /* ds */      {        ws->prefixFlags |= PX_SEGOVER;        ws->segmentOverride = R_DS;        ++numBytes;        break;      } /* case 0x3E */      case 0x26:        /* es */      {        ws->prefixFlags |= PX_SEGOVER;        ws->segmentOverride = R_ES;        ++numBytes;        break;      } /* case 0x26 */      case 0x64:        /* fs */      {        ws->prefixFlags |= PX_SEGOVER;        ws->segmentOverride = R_FS;        ++numBytes;        break;      } /* case 0x64 */      case 0x65:        /* gs */      {        ws->prefixFlags |= PX_SEGOVER;        ws->segmentOverride = R_GS;        ++numBytes;        break;      } /* case 0x65 */      default:      {        done = 1;        break;      }    } /* switch (byte) */  } /* while (!done) */  return (numBytes);} /* x86processPrefix() *//*x86testPrefix()  Called from x86findOpCode() to determine if a potential match passesprefix requirements, such as operand override.Inputs: ws  - disasm workspace        ptr - potential opcode matchReturn: 0 if ptr does not pass prefix test        1 if ptr passes prefix test but there is a possibility of          a better match        2 if ptr passes all prefix tests with no possibility of a          better match*/intx86testPrefix(struct disasmWorkspace *ws, struct x86OpCode *ptr){  unsigned int flags;  assert(ptr != 0);  /*   * Our goal here is to determine what bit mode this   * instruction wants to be in. For example, we may   * be disassembling the file in 16 bit mode, but if   * this instruction has an operand override prefix,   * we need to disassemble it in 32 bit mode. The   * operand override prefix is a toggle between 16   * and 32 bit mode. The requirements here are as   * follows:   *   * 1. If we are in 16 bit mode, an operand override prioritizes   *    the 32 bit version of the same instruction, if there is one.   *    If there is not, the 16 bit version is still acceptable. An   *    example of this is the NOP instruction. There is only one   *    NOP (0x90) so an opcode of the form (0x66 0x90) should also   *    be a NOP since there is no "32 bit" version of NOP.   * 2. If we are in 32 bit mode, an operand override tells us to   *    use the 16 bit version of the instruction.   */  flags = 0;  if (ws->flags & DA_16BITMODE)  {    if (ws->prefixFlags & PX_OPOVER)      flags = DA_32BITMODE;    else      flags = DA_16BITMODE;  }  else if (ws->flags & DA_32BITMODE)  {    if (ws->prefixFlags & PX_OPOVER)      flags = DA_16BITMODE;    else      flags = DA_32BITMODE;  }  else  {    fprintf(stderr,            "x86testPrefix: error: we are neither in 16 nor 32 bit mode\n");    return (0);  }  if (flags & DA_16BITMODE)  {    /*     * The instruction wants to be disassembled in 16     * bit mode: if any of the prospective match's operands     * is 32 bits, declare it to be a weak match.     */    if ((ptr->operands[0] & BITS32) ||        (ptr->operands[1] & BITS32) ||        (ptr->operands[2] & BITS32))      return (1);  }  else if (flags & DA_32BITMODE)  {    /*     * The instruction wants to be disassembled in 32     * bit mode. If this prospective match has no 32     * bit operands, declare it to be a weak match:     * there may be another prospective down the line     * with a 32 bit operand, but if there is not, this     * prospective could still be used.     */    if (!(ptr->operands[0] & BITS32) &&        !(ptr->operands[1] & BITS32) &&        !(ptr->operands[2] & BITS32))      return (1);  }  else  {    fprintf(stderr,            "x86testPrefix: error: flags variable is empty\n");    return (0);  }  return (2);} /* x86testPrefix() *//*x86addrSizeAttribute()  Determine the address size attribute of the currentinstruction we are disassembling.Inputs: ws - disasm workspaceReturn: DA_16BITMODE or DA_32BITMODE depending on the size attributes        of the instruction*/unsigned intx86addrSizeAttribute(struct disasmWorkspace *ws){  if (ws->flags & DA_16BITMODE)  {    if (ws->prefixFlags & PX_ADDROVER)      return (DA_32BITMODE);    else      return (DA_16BITMODE);  }  else if (ws->flags & DA_32BITMODE)  {    if (ws->prefixFlags & PX_ADDROVER)      return (DA_16BITMODE);    else      return (DA_32BITMODE);  }  /*   * We should never get here: default to 32 bit mode   */  fprintf(stderr,          "x86addrSizeAttribute: error: we are neither in 16 nor 32 bit mode\n");  return (DA_32BITMODE);} /* x86addrSizeAttribute() */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看视频一区二区欧美日韩| 久久久三级国产网站| 欧美一区二区三区公司| 国产无遮挡一区二区三区毛片日本| 亚洲在线成人精品| 丁香婷婷综合激情五月色| 欧美亚洲综合一区| 日韩美女久久久| 国产一区二区在线观看视频| 欧美日本在线观看| 亚洲天堂2014| www.成人在线| 国产亚洲美州欧州综合国| 蜜臀av性久久久久蜜臀aⅴ四虎| 91网站在线播放| 午夜影院在线观看欧美| caoporn国产一区二区| 精品奇米国产一区二区三区| 亚洲成av人影院| 色av成人天堂桃色av| 中文字幕免费不卡在线| 国产精品一区二区三区四区| 精品欧美一区二区三区精品久久| 亚洲国产日产av| 欧美性猛交xxxx乱大交退制版| 亚洲欧美综合网| 色综合久久天天综合网| 亚洲欧美偷拍卡通变态| 色哟哟一区二区三区| 樱花草国产18久久久久| 色噜噜狠狠成人网p站| 亚洲色图都市小说| 色一情一伦一子一伦一区| 亚洲综合精品久久| 欧美少妇xxx| 日欧美一区二区| 日韩一区二区三区av| 丝袜脚交一区二区| 精品国产91亚洲一区二区三区婷婷| 美女视频黄频大全不卡视频在线播放| 欧美美女一区二区在线观看| 日日噜噜夜夜狠狠视频欧美人| 欧美蜜桃一区二区三区 | 国产成人综合亚洲91猫咪| 国产网站一区二区三区| 91视频一区二区三区| 亚洲一区二区三区视频在线播放 | 4438成人网| 蜜桃传媒麻豆第一区在线观看| 日韩精品专区在线| 国产精品影视天天线| 精品一区二区三区免费观看| 精品动漫一区二区三区在线观看| 国产精品中文字幕欧美| 国产精品素人视频| 欧美高清视频www夜色资源网| 麻豆freexxxx性91精品| 中文字幕第一区第二区| 欧美日韩一级二级| 国产二区国产一区在线观看| 亚洲精品中文字幕乱码三区| 8x福利精品第一导航| 国产成人小视频| 五月天一区二区三区| 久久久九九九九| 精品婷婷伊人一区三区三| 国产精品一卡二卡在线观看| 亚洲主播在线播放| 2欧美一区二区三区在线观看视频| 成人一级视频在线观看| 欧美96一区二区免费视频| 欧美国产激情一区二区三区蜜月| 欧美综合视频在线观看| 国产尤物一区二区| 一区二区三区视频在线看| 精品国产乱码久久久久久久久| 色综合天天综合色综合av| 久久精品国产一区二区三区免费看 | 久久久久久久av麻豆果冻| 91浏览器打开| 国产剧情一区二区| 午夜久久福利影院| 亚洲欧美一区二区三区国产精品| 欧美不卡123| 国产农村妇女毛片精品久久麻豆 | 99精品热视频| 国产一区视频导航| 日本欧美一区二区三区| 亚洲免费观看视频| 中文字幕不卡在线| 日韩精品综合一本久道在线视频| 色欧美日韩亚洲| 成人午夜av电影| 国产一区二区三区av电影| 美女性感视频久久| 强制捆绑调教一区二区| 亚洲一二三四在线| 亚洲色图另类专区| 国产精品进线69影院| 国产网红主播福利一区二区| 精品嫩草影院久久| 精品久久久久久无| 日韩一区二区视频在线观看| 欧美日韩夫妻久久| 欧美久久久久久久久| 精品视频在线看| 欧美中文字幕久久| 欧美系列一区二区| 欧美日韩国产首页| 欧美美女激情18p| 欧美三区在线观看| 欧美精品第1页| 欧美日韩国产中文| 欧美一区二区三区影视| 日韩西西人体444www| 欧美大胆人体bbbb| 久久综合久久鬼色| 国产情人综合久久777777| 国产欧美日韩另类视频免费观看| 欧美激情一区在线观看| 亚洲欧美中日韩| 亚洲五月六月丁香激情| 视频一区二区欧美| 久久国产免费看| 成人综合婷婷国产精品久久蜜臀 | 久久se这里有精品| 国产成人精品亚洲日本在线桃色| 国产剧情一区二区三区| 亚洲亚洲精品在线观看| 国产精品中文字幕日韩精品| 国产在线麻豆精品观看| 国产日产亚洲精品系列| 在线看日韩精品电影| 综合久久久久久| 洋洋成人永久网站入口| 免费高清视频精品| 国产成人av电影在线| 99精品国产视频| 欧美一区二区在线视频| 久久久久99精品国产片| 亚洲免费观看高清完整 | 久久免费偷拍视频| 中文字幕欧美一区| 亚洲mv大片欧洲mv大片精品| 久久99久久久久久久久久久| caoporm超碰国产精品| 91激情五月电影| 亚洲精品在线观看网站| 一区二区三区四区精品在线视频| 美女视频免费一区| 99国产麻豆精品| 一区二区三区产品免费精品久久75| 中文字幕一区二区在线观看| 国产人成亚洲第一网站在线播放| 亚洲另类一区二区| 不卡一卡二卡三乱码免费网站| 欧美日本一区二区在线观看| 国产精品国产精品国产专区不蜜| 国产69精品久久777的优势| 国产亚洲精久久久久久| 国产盗摄一区二区| 欧美久久高跟鞋激| 欧美在线综合视频| 2021久久国产精品不只是精品| 亚洲精品日日夜夜| 激情小说亚洲一区| 欧美亚洲一区三区| 亚洲国产高清在线观看视频| 婷婷综合在线观看| 99久久精品国产麻豆演员表| 日韩欧美不卡在线观看视频| 亚洲猫色日本管| 国产精品一级片在线观看| 欧美福利电影网| 尤物在线观看一区| www.一区二区| 国产欧美一区二区精品秋霞影院| 美女一区二区久久| 337p亚洲精品色噜噜| 自拍偷在线精品自拍偷无码专区 | 亚洲制服丝袜av| 风流少妇一区二区| 欧美成人国产一区二区| 一区二区三区高清不卡| 成人免费电影视频| 久久精品亚洲一区二区三区浴池| 图片区日韩欧美亚洲| 欧美性淫爽ww久久久久无| 亚洲伦理在线精品| 色综合色综合色综合色综合色综合 | 91热门视频在线观看| 国产日产欧美一区二区三区| 精彩视频一区二区三区| 日韩一区二区三区免费看| 国产精品2024| 国产色爱av资源综合区| 国产成人av网站| 中文一区一区三区高中清不卡| 粉嫩嫩av羞羞动漫久久久| 国产日产欧产精品推荐色 |