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

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

?? assembl.c

?? 反匯編disasm的源代碼 反匯編disasm的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
    // Check whether command operands match specified. If so, variable match
    // remains zero, otherwise it contains kind of mismatch. This allows for
    // better error diagnostics.
    match=0;
    for (j=0; j<3; j++) {              // Up to 3 operands
      op=aop+j;
      if (j==0) arg=pd->arg1;
      else if (j==1) arg=pd->arg2;
      else arg=pd->arg3;
      if (arg==NNN || arg>=PSEUDOOP) {
        if (op->type!=NNN)             // No more arguments
          match|=MA_NOP;
        break; };
      if (op->type==NNN) {
        match|=MA_NOP; break; };       // No corresponding operand
      switch (arg) {
        case REG:                      // Integer register in Reg field
        case RCM:                      // Integer register in command byte
        case RAC:                      // Accumulator (AL/AX/EAX, implicit)
          if (op->type!=REG) match|=MA_TYP;
          if (arg==RAC && op->index!=REG_EAX && op->index!=8) match|=MA_TYP;
          if (bytesize==0 && op->size==1) match|=MA_SIZ;
          if (datasize==0) datasize=op->size;
          if (datasize!=op->size) match|=MA_DIF;
          break;
        case RG4:                      // Integer 4-byte register in Reg field
          if (op->type!=REG) match|=MA_TYP;
          if (op->size!=4) match|=MA_SIZ;
          if (datasize==0) datasize=op->size;
          if (datasize!=op->size) match|=MA_DIF;
          break;
        case RAX:                      // AX (2-byte, implicit)
          if (op->type!=REG || (op->index!=REG_EAX && op->index!=8))
            match|=MA_TYP;
          if (op->size!=2) match|=MA_SIZ;
          if (datasize==0) datasize=op->size;
          if (datasize!=op->size) match|=MA_DIF;
          break;
        case RDX:                      // DX (16-bit implicit port address)
          if (op->type!=REG || (op->index!=REG_EDX && op->index!=8))
            match|=MA_TYP;
          if (op->size!=2) match|=MA_SIZ; break;
        case RCL:                      // Implicit CL register (for shifts)
          if (op->type!=REG || (op->index!=REG_ECX && op->index!=8))
            match|=MA_TYP;
          if (op->size!=1) match|=MA_SIZ;
          break;
        case RS0:                      // Top of FPU stack (ST(0))
          if (op->type!=RST || (op->index!=0 && op->index!=8))
            match|=MA_TYP;
          break;
        case RST:                      // FPU register (ST(i)) in command byte
          if (op->type!=RST) match|=MA_TYP; break;
        case RMX:                      // MMX register MMx
        case R3D:                      // 3DNow! register MMx
          if (op->type!=RMX) match|=MA_TYP; break;
        case MRG:                      // Memory/register in ModRM byte
          if (op->type!=MRG && op->type!=REG) match|=MA_TYP;
          if (bytesize==0 && op->size==1) match|=MA_SIZ;
          if (datasize==0) datasize=op->size;
          if (op->size!=0 && op->size!=datasize) match|=MA_DIF;
          break;
        case MR1:                      // 1-byte memory/register in ModRM byte
          if (op->type!=MRG && op->type!=REG) match|=MA_TYP;
          if (op->size!=0 && op->size!=1) match|=MA_SIZ;
          break;
        case MR2:                      // 2-byte memory/register in ModRM byte
          if (op->type!=MRG && op->type!=REG) match|=MA_TYP;
          if (op->size!=0 && op->size!=2) match|=MA_SIZ;
          break;
        case MR4:                      // 4-byte memory/register in ModRM byte
          if (op->type!=MRG && op->type!=REG) match|=MA_TYP;
          if (op->size!=0 && op->size!=4) match|=MA_SIZ;
          break;
        case RR4:                      // 4-byte memory/register (register only)
          if (op->type!=REG) match|=MA_TYP;
          if (op->size!=0 && op->size!=4) match|=MA_SIZ;
          break;
        case MRJ:                      // Memory/reg in ModRM as JUMP target
          if (op->type!=MRG && op->type!=REG) match|=MA_TYP;
          if (op->size!=0 && op->size!=4) match|=MA_SIZ;
          if ((jmpmode & 0x09)!=0) match|=MA_JMP;
          jmpmode&=0x7F; break;
        case MR8:                      // 8-byte memory/MMX register in ModRM
        case MRD:                      // 8-byte memory/3DNow! register in ModRM
          if (op->type!=MRG && op->type!=RMX) match|=MA_TYP;
          if (op->size!=0 && op->size!=8) match|=MA_SIZ;
          break;
        case RR8:                      // 8-byte MMX register only in ModRM
        case RRD:                      // 8-byte memory/3DNow! (register only)
          if (op->type!=RMX) match|=MA_TYP;
          if (op->size!=0 && op->size!=8) match|=MA_SIZ;
          break;
        case MMA:                      // Memory address in ModRM byte for LEA
          if (op->type!=MRG) match|=MA_TYP; break;
        case MML:                      // Memory in ModRM byte (for LES)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=6) match|=MA_SIZ;
          if (datasize==0) datasize=4; else if (datasize!=4) match|=MA_DIF;
          break;
        case MMS:                      // Memory in ModRM byte (as SEG:OFFS)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=6) match|=MA_SIZ;
          if ((jmpmode & 0x07)!=0) match|=MA_JMP;
          jmpmode&=0x7F; break;
        case MM6:                      // Memory in ModRm (6-byte descriptor)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=6) match|=MA_SIZ;
          break;
        case MMB:                      // Two adjacent memory locations (BOUND)
          if (op->type!=MRG) match|=MA_TYP;
          k=op->size; if (ideal==0 && k>1) k/=2;
          if (k!=0 && k!=datasize) match|=MA_DIF;
          break;
        case MD2:                      // Memory in ModRM byte (16-bit integer)
        case MB2:                      // Memory in ModRM byte (16-bit binary)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=2) match|=MA_SIZ;
          break;
        case MD4:                      // Memory in ModRM byte (32-bit integer)
        case MF4:                      // Memory in ModRM byte (32-bit float)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=4) match|=MA_SIZ;
          break;
        case MD8:                      // Memory in ModRM byte (64-bit integer)
        case MF8:                      // Memory in ModRM byte (64-bit float)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=8) match|=MA_SIZ;
          break;
        case MDA:                      // Memory in ModRM byte (80-bit BCD)
        case MFA:                      // Memory in ModRM byte (80-bit float)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0 && op->size!=10) match|=MA_SIZ;
          break;
        case MFE:                      // Memory in ModRM byte (FPU environment)
        case MFS:                      // Memory in ModRM byte (FPU state)
        case MFX:                      // Memory in ModRM byte (ext. FPU state)
          if (op->type!=MRG) match|=MA_TYP;
          if (op->size!=0) match|=MA_SIZ;
          break;
        case MSO:                      // Source in string operands ([ESI])
          if (op->type!=MRG || op->base!=REG_ESI ||
            op->index!=-1 || op->offset!=0 || op->anyoffset!=0) match|=MA_TYP;
          if (datasize==0) datasize=op->size;
          if (op->size!=0 && op->size!=datasize) match|=MA_DIF;
          break;
        case MDE:                      // Destination in string operands ([EDI])
          if (op->type!=MRG || op->base!=REG_EDI ||
            op->index!=-1 || op->offset!=0 || op->anyoffset!=0) match|=MA_TYP;
          if (op->segment!=SEG_UNDEF && op->segment!=SEG_ES) match|=MA_SEG;
          if (datasize==0) datasize=op->size;
          if (op->size!=0 && op->size!=datasize) match|=MA_DIF;
          break;
        case MXL:                      // XLAT operand ([EBX+AL])
          if (op->type!=MXL) match|=MA_TYP; break;
        case IMM:                      // Immediate data (8 or 16/32)
        case IMU:                      // Immediate unsigned data (8 or 16/32)
          if (op->type!=IMM) match|=MA_TYP;
          break;
        case VXD:                      // VxD service (32-bit only)
          if (op->type!=IMM) match|=MA_TYP;
          if (datasize==0) datasize=4;
          if (datasize!=4) match|=MA_SIZ;
          break;
        case JMF:                      // Immediate absolute far jump/call addr
          if (op->type!=JMF) match|=MA_TYP;
          if ((jmpmode & 0x05)!=0) match|=MA_JMP;
          jmpmode&=0x7F; break;
        case JOB:                      // Immediate byte offset (for jumps)
          if (op->type!=IMM || longjump) match|=MA_TYP;
          if ((jmpmode & 0x0A)!=0) match|=MA_JMP;
          jmpmode&=0x7F; break;
        case JOW:                      // Immediate full offset (for jumps)
          if (op->type!=IMM) match|=MA_TYP;
          if ((jmpmode & 0x09)!=0) match|=MA_JMP;
          jmpmode&=0x7F; break;
        case IMA:                      // Immediate absolute near data address
          if (op->type!=MRG || op->base>=0 || op->index>=0) match|=MA_TYP;
          break;
        case IMX:                      // Immediate sign-extendable byte
          if (op->type!=IMM) match|=MA_TYP;
          if (op->offset<-128 || op->offset>127) match|=MA_RNG;
          break;
        case C01:                      // Implicit constant 1 (for shifts)
          if (op->type!=IMM || (op->offset!=1 && op->anyoffset==0))
            match|=MA_TYP;
          break;
        case IMS:                      // Immediate byte (for shifts)
        case IM1:                      // Immediate byte
          if (op->type!=IMM) match|=MA_TYP;
          if (op->offset<-128 || op->offset>255) match|=MA_RNG;
          break;
        case IM2:                      // Immediate word (ENTER/RET)
          if (op->type!=IMM) match|=MA_TYP;
          if (op->offset<0 || op->offset>65535) match|=MA_RNG;
          break;
        case SGM:                      // Segment register in ModRM byte
          if (op->type!=SGM) match|=MA_TYP;
          if (datasize==0) datasize=2;
          if (datasize!=2) match|=MA_DIF;
          break;
        case SCM:                      // Segment register in command byte
          if (op->type!=SGM) match|=MA_TYP;
          break;
        case CRX:                      // Control register CRx
        case DRX:                      // Debug register DRx
          if (op->type!=arg) match|=MA_TYP;
          if (datasize==0) datasize=4;
          if (datasize!=4) match|=MA_DIF;
          break;
        case PRN:                      // Near return address (pseudooperand)
        case PRF:                      // Far return address (pseudooperand)
        case PAC:                      // Accumulator (AL/AX/EAX, pseudooperand)
        case PAH:                      // AH (in LAHF/SAHF, pseudooperand)
        case PFL:                      // Lower byte of flags (pseudooperand)
        case PS0:                      // Top of FPU stack (pseudooperand)
        case PS1:                      // ST(1) (pseudooperand)
        case PCX:                      // CX/ECX (pseudooperand)
        case PDI:                      // EDI (pseudooperand in MMX extentions)
          break;
        default:                       // Undefined type of operand
          strcpy(errtext,"Internal Assembler error");
        goto error;
      };                               // End of switch (arg)
      if ((jmpmode & 0x80)!=0) match|=MA_JMP;
      if (match!=0) break;             // Some of the operands doesn't match
    };                                 // End of operand matching loop
    if (match==0) {                    // Exact match found
      if (attempt>0) {
        --attempt; nameok=0; }         // Well, try to find yet another match
      else break;
    };
  };                                   // End of command search loop
  // Check whether some error was detected. If several errors were found
  // similtaneously, report one (roughly in order of significance).
  if (nameok==0) {                     // Mnemonic unavailable
    strcpy(errtext,"Unrecognized command");
    asmcmd=nameend; goto error; };
  if (match!=0) {                      // Command not found
    if (minop>0 && aop[minop-1].type==NNN)
      strcpy(errtext,"Too few operands");
    else if (maxop<3 && aop[maxop].type!=NNN)
      strcpy(errtext,"Too many operands");
    else if (nameok>1)                 // More that 1 command
      strcpy(errtext,"Command does not support given operands");
    else if (match & MA_JMP)
      strcpy(errtext,"Invalid jump size modifier");
    else if (match & MA_NOP)
      strcpy(errtext,"Wrong number of operands");
    else if (match & MA_TYP)
      strcpy(errtext,"Command does not support given operands");
    else if (match & MA_NOS)
      strcpy(errtext,"Please specify operand size");
    else if (match & MA_SIZ)
      strcpy(errtext,"Bad operand size");
    else if (match & MA_DIF)
      strcpy(errtext,"Different size of operands");
    else if (match & MA_SEG)
      strcpy(errtext,"Invalid segment register");
    else if (match & MA_RNG)
      strcpy(errtext,"Constant out of expected range");
    else
      strcpy(errtext,"Erroneous command");
    goto error;
  };
  // Exact match found. Now construct the code.
  hasrm=0;                             // Whether command has ModR/M byte
  hassib=0;                            // Whether command has SIB byte
  dispsize=0;                          // Size of displacement (if any)
  immsize=0;                           // Size of immediate data (if any)
  segment=SEG_UNDEF;                   // Necessary segment prefix
  jmpsize=0;                           // No relative jumps
  memset(tcode,0,sizeof(tcode));
  *(ulong *)tcode=pd->code & pd->mask;
  memset(tmask,0,sizeof(tmask));
  *(ulong *)tmask=pd->mask;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩三级伦理片妻子的秘密按摩| 在线观看一区二区视频| 亚洲五月六月丁香激情| 中文字幕中文字幕在线一区| 国产亚洲美州欧州综合国| 久久先锋影音av鲁色资源网| 欧美电视剧在线观看完整版| 日韩视频免费观看高清完整版在线观看 | 久久精品久久久精品美女| 日本美女视频一区二区| 免费看欧美女人艹b| 久久电影国产免费久久电影| 国产一区啦啦啦在线观看| 国产一区二区在线电影| 床上的激情91.| 91看片淫黄大片一级| 精品视频1区2区| 日韩免费视频一区| 国产精品久久久久久久久免费相片| 中文字幕人成不卡一区| 午夜影视日本亚洲欧洲精品| 久久er精品视频| jlzzjlzz欧美大全| 欧美一区二区三区免费| 中文av一区特黄| 五月天视频一区| 成人一区在线观看| 欧美乱熟臀69xxxxxx| 日韩免费观看高清完整版在线观看| 2022国产精品视频| 亚洲免费成人av| 韩日av一区二区| 在线观看91视频| 欧美tk—视频vk| 亚洲最色的网站| 丁香桃色午夜亚洲一区二区三区| 欧洲一区在线观看| 久久精品男人天堂av| 亚洲午夜精品网| 国产精品 日产精品 欧美精品| 99久久精品免费看国产| 欧美xxxx老人做受| 亚洲精品videosex极品| 国产在线不卡一区| 欧美日韩免费一区二区三区视频 | 狠狠狠色丁香婷婷综合久久五月| 色婷婷亚洲精品| 久久久久国产一区二区三区四区 | 成人小视频在线| 精品99999| 亚洲国产精品久久不卡毛片| 国产精品一区久久久久| 91精品国产综合久久久蜜臀粉嫩 | 日韩国产在线观看一区| av在线不卡免费看| 日本一区二区免费在线观看视频| 日本不卡在线视频| 欧美精品色综合| 亚洲午夜视频在线| 色综合中文字幕国产 | 日韩高清不卡在线| 色香蕉成人二区免费| 国产精品色婷婷久久58| 国产一区二区三区视频在线播放| 欧美日韩一本到| 一区二区三区四区乱视频| 成人av电影观看| 亚洲视频在线一区| av在线播放成人| 亚洲精选视频免费看| 97久久超碰国产精品电影| 国产精品视频看| 99久久婷婷国产综合精品 | 亚洲激情成人在线| 色88888久久久久久影院按摩| 国产精品久久久久7777按摩| 国产精品 欧美精品| 国产日韩欧美高清在线| 成人蜜臀av电影| 亚洲人成精品久久久久久| 91视频在线看| 亚洲图片欧美视频| 4438x成人网最大色成网站| 日本午夜精品视频在线观看 | 精品一二三四在线| 亚洲国产精品国自产拍av| 不卡一区二区三区四区| 亚洲一区二区中文在线| 日韩免费观看高清完整版| 国产一区免费电影| 亚洲欧洲成人精品av97| 欧美中文字幕亚洲一区二区va在线 | 久久亚洲精精品中文字幕早川悠里| 韩国一区二区三区| 亚洲欧美偷拍另类a∨色屁股| 欧美日韩一区二区电影| 免费在线一区观看| 国产精品美女视频| 911精品产国品一二三产区| 久久69国产一区二区蜜臀| 国产精品欧美极品| 欧美日韩精品一区二区三区蜜桃| 青青青伊人色综合久久| 欧美国产精品专区| 在线播放91灌醉迷j高跟美女 | 丝袜美腿亚洲综合| 久久久久久久久久久久久夜| 色国产精品一区在线观看| 免费在线观看一区| 亚洲精品中文在线影院| 精品少妇一区二区三区免费观看| 成人毛片在线观看| 精品一区二区三区在线播放| 一区在线观看免费| 欧美第一区第二区| 欧美在线观看视频一区二区 | 在线成人av网站| 99精品在线观看视频| 国产一区二区三区四| 日精品一区二区三区| 国产精品久久久久影院| 亚洲精品一区二区三区香蕉| 欧美视频自拍偷拍| 成人国产视频在线观看| 狠狠久久亚洲欧美| 日韩精彩视频在线观看| 亚洲影院在线观看| 国产精品乱子久久久久| 欧美精品一区二区不卡| 欧美日韩国产色站一区二区三区| 91在线视频观看| 成人亚洲一区二区一| 精品亚洲成a人| 免费日本视频一区| 日本人妖一区二区| 亚洲成av人片在线观看| 自拍偷拍国产精品| 中文字幕精品一区二区精品绿巨人 | 日韩精品乱码av一区二区| 中文字幕日韩av资源站| 国产片一区二区| 久久免费视频一区| 欧美电影免费观看高清完整版在| 欧美精品一二三四| 欧美日韩久久不卡| 欧美日韩中字一区| 欧美亚洲综合久久| 欧美日韩在线不卡| 91麻豆精品91久久久久同性| 欧美色精品在线视频| 欧美性大战久久| 欧美精品国产精品| 日韩精品专区在线| 久久一区二区视频| 久久精品一区四区| 国产精品久久毛片av大全日韩| 国产精品美女一区二区三区| 《视频一区视频二区| 国产精品久久网站| 亚洲一级二级在线| 青椒成人免费视频| 精品写真视频在线观看 | 欧洲一区在线观看| 337p亚洲精品色噜噜| 6080午夜不卡| 久久亚洲私人国产精品va媚药| 中文字幕av在线一区二区三区| 18欧美亚洲精品| 五月天丁香久久| 国产精品亚洲人在线观看| 国产jizzjizz一区二区| 91丝袜美腿高跟国产极品老师| 欧亚一区二区三区| 精品国产乱码久久久久久老虎 | 精品毛片乱码1区2区3区| 欧美经典一区二区三区| 一区二区三区视频在线看| 三级一区在线视频先锋| 国产成人免费xxxxxxxx| 欧美亚洲综合色| 久久免费看少妇高潮| 亚洲欧美日韩久久精品| 美腿丝袜一区二区三区| 97久久超碰精品国产| 日韩一区和二区| 亚洲欧美日韩国产成人精品影院 | 精品国产欧美一区二区| 亚洲视频在线一区二区| 精品一区二区三区在线视频| 99re这里只有精品6| 精品欧美乱码久久久久久1区2区| 中文字幕第一区综合| 日本不卡高清视频| 97精品国产露脸对白| 日韩精品一区二区三区老鸭窝| 综合自拍亚洲综合图不卡区| 日韩精品欧美成人高清一区二区| 99在线精品一区二区三区| 日韩亚洲欧美综合| 亚洲免费三区一区二区|