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

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

?? dsmlib.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if (dsmDebug)	{        printf ("FORMAT_Y len = %d\n", pY->len);        printf ("        obuf = %s\n", pY->obuf);        printf ("        rbuf = %s\n", pY->rbuf);        printf ("        mbuf = %s\n", pY->mbuf);        printf ("        ibuf = %s\n", pY->ibuf);        printf ("        dbuf = %s\n", pY->dbuf);	}    return;    }/********************************************************************************* dsmPass1 - fill FORMAT_X structure.** RETURNS: N/A*/LOCAL void dsmPass1    (    FORMAT_X *pX,    FORMAT_Y *pY     )    {    char *pS;    /* pX->lenO = size of Opcode in bytes = 1, 2, or 3 */    if (pX->pI->flag & OP3)        pX->lenO = 3;    else if (pX->pI->flag & OP2) 	pX->lenO = 2;    else	pX->lenO = 1;    /* get a Opecode */    if (pX->pI->flag & TTTN)	{	instKeeper = pX->pI->pOpc;	pS = tttn[*(pX->pD + pX->lenO - 1) & 0x0f];	if (pX->pI->type == itCjmp)	    {	    bcopy ("J  ", pY->obuf, 3);	    bcopy (pS, &pY->obuf[1], strlen (pS));	    }	if (pX->pI->type == itCset)	    {	    bcopy ("SET", pY->obuf, 3);	    bcopy (pS, &pY->obuf[3], strlen (pS));	    }	if (pX->pI->type == itCmovcc)	    {	    bcopy ("CMOV", pY->obuf, 4);	    bcopy (pS, &pY->obuf[4], strlen (pS));	    }	pX->pI->pOpc = pY->obuf;	}    if (pX->pI->flag & TTT)	pX->pI->pOpc = ttt[(*(pX->pD + pX->lenO) & 0x38) >> 3];    /* get an MMX granularity */    if (pX->pI->flag & GG)	{	instKeeper = pX->pI->pOpc;	pS = gg[*(pX->pD + pX->lenO - 1) & 0x03];	bcopy (pX->pI->pOpc, pY->obuf, strlen (pX->pI->pOpc));	bcopy (pS, &pY->obuf[strlen (pX->pI->pOpc)], strlen (pS));	pX->pI->pOpc = pY->obuf;	}    /* get a W */    if (pX->pI->flag & WFUL)	{	pX->w = *(pX->pD + pX->lenO - 1) & 0x01;	if (pX->pI->type == itMovItoR)	    pX->w = (*pX->pD & 0x08) >> 3;	}    /* get a S */    if (pX->pI->flag & SEXT)	pX->s = (*(pX->pD + pX->lenO - 1) & 0x02) >> 1;    /*      * get a D      *     * jhw - for our representation of data direction:     *           pX->d = 0 is an r/m -> reg transfer      *           pX->d = 1 is a  reg -> r/m transfer     */    if (pX->pI->flag & DISR)        {        /* 	 * MMX instructions reference least significant opcode byte bit 4 for          * data direction information.         *         * for Intel's representation:         *    D bit = 0 is an r/m -> reg transfer          *    D bit = 1 is a  reg -> r/m transfer          */						                       if (pX->pI->flag & (MMXREG|MMXRM))            pX->d = (*(pX->pD + pX->lenO - 1) & 0x10) >> 4;        /* 	 * XMM instructions reference least significant opcode byte bit 0 for          * data direction information.         *         * for Intel's representation:         *    D bit = 0 is an r/m -> reg transfer          *    D bit = 1 is a  reg -> r/m transfer          */              else if (pX->pI->flag2 & (XMMREG|XMMRM))             pX->d = (*(pX->pD + pX->lenO - 1) & 0x01);        /* 	 * all others use least significant byte bit 1 for          * data direction information.         *          * BUT... all other instructions use the opposite representation!         *	 * for Intel's representation:         *    D bit = 1 is an r/m -> reg transfer          *    D bit = 0 is a  reg -> r/m transfer          */        else            /* invert the state */            pX->d = (*(pX->pD + pX->lenO - 1) & 0x02) ? 0 : 1;	/* evaluate the special case instructions! */	/*	 * PEXTRW is a SIMD instruction, but it operates on MMX	 * register. Therefore it deviates from the above rules.	 * The DISR flag is included in the definition because	 * the data dir is reg -> r/m regardless.	 */	if (pX->pI->type == itPextrw)            pX->d = 1;	}    /* get a REG */    if (pX->pI->flag & SREG2)        pX->reg = (*pX->pD & 0x18) >> 3;    if (pX->pI->flag & SREG3)        pX->reg = (*(pX->pD + pX->lenO) & 0x38) >> 3;    if ( (pX->pI->flag & REG) ||     	 (pX->pI->flag & MMXREG) ||	 (pX->pI->flag2 & XMMREG))    	{	if (pX->pI->flag & SF)	    pX->reg = *pX->pD & 0x07;	else if (pX->pI->flag & MODRM)	    pX->reg = (*(pX->pD + pX->lenO) & 0x38) >> 3;        else            {            printf ("dsmLib.c error 0: Invalid opcode flag definition.\n");            printf ("\top = 0x%02x 0x%02x 0x%02x 0x%02x\n",                    (UCHAR)*pX->pD, (UCHAR)*(pX->pD + 1),                    (UCHAR)*(pX->pD + 2), (UCHAR)*(pX->pD + 3));            }	}    if (pX->pI->flag & EEE)        pX->reg = (*(pX->pD + pX->lenO) & 0x38) >> 3;    /* get a ST for 387*/    if (pX->pI->flag & ST)	pX->st = *(pX->pD + pX->lenO - 1) & 0x07;    /* get a MF for 387*/    if (pX->pI->flag & MF)	pX->mf = (*pX->pD & 0x06) >> 1;    /* get a FD for 387 */    if (pX->pI->flag & FD)	pX->fd = *pX->pD & 0x04;    /* get a size of Immediate, 0, 1, 2, 4 */    if (pX->pI->flag & I8)	pX->lenI = 1;    if (pX->pI->flag & IMM)	{	if (pX->s)	    pX->lenI = 1;	else	    pX->lenI = immL[(int)pX->d32][(int)pX->w];	}    if (pX->pI->flag & OFFSEL)	{	/* 	 * CALL/JMP ptr16:16/32	 * The operand size attribute determines the size of offset (16/32).	 * The operand size attribute is the D flag in the segment desc.	 * The instruction prefix 0x66 can be used to select an operand	 * size other than the default.	 */	if (pX->d32)	    pX->lenI = 4;	else	    pX->lenI = 2;	}    if ((pX->pI->flag & D16L8) || (pX->pI->flag & PORT))	pX->lenI = 2;    /* get a size of Displacement, 0, 1, 2, 4 */    if (pX->pI->flag & D8)	pX->lenD = 1;    if (pX->pI->flag & (DIS|D16))	{	if (pX->pI->flag & WFUL)	    {	    if (pX->pI->type == itMovAMtoMA)		pX->lenD = immL[(int)pX->a32][(int)pX->w];	    else		pX->lenD = immL[(int)pX->d32][(int)pX->w];	    }	else	    pX->lenD = immL[(int)pX->d32][(int)pX->w];	}    if (pX->pI->flag & OFFSEL)	pX->lenD = 2;    if (pX->pI->flag & D16L8)	pX->lenD = 1;    if (pX->pI->flag & MODRM)	{	pX->modrm = 1;	pY->pD = pX->pD + pX->lenO;	pX->mod = (*pY->pD & 0xc0) >> 6;	pX->rm = *pY->pD & 0x07;	if ((pX->a32 == 0) && (pX->mod != 3))	    {	    if (pX->mod == 1)		pX->lenD = 1;	    else if ((pX->mod == 2) || ((pX->mod == 0) && (pX->rm == 6)))		pX->lenD = 2;	    }	if ((pX->a32 == 1) && (pX->mod != 3))	    {	    if (pX->rm == 4)		{	        pX->sib = 1;	        pY->pD = pX->pD + pX->lenO + pX->modrm;	        pX->ss = (*pY->pD & 0xc0) >> 6;	        pX->index = (*pY->pD & 0x38) >> 3;	        pX->base = *pY->pD & 0x07;	        if (pX->mod == 1)		    pX->lenD = 1;	        else if ((pX->mod == 2) || ((pX->mod == 0) && (pX->base == 5)))		    pX->lenD = 4;		}	    else		{	        if (pX->mod == 1)		    pX->lenD = 1;	        else if ((pX->mod == 2) || ((pX->mod == 0) && (pX->rm == 5)))		    pX->lenD = 4;		}	    }	}    }    /********************************************************************************* dsmPass2 - fill FORMAT_Y structure.** RETURNS: N/A*/LOCAL void dsmPass2    (    FORMAT_X *pX,    FORMAT_Y *pY     )    {    FAST char *pS = 0;    /* get an instruction length, pY->len */    pY->len = pX->lenO + pX->modrm + pX->sib + pX->lenD + pX->lenI;    /* get an opecode pointer, pY->pOpc */    pY->pOpc = pX->pI->pOpc;    if (pX->pI->flag & MF)        {        pS = pY->obuf;        if (pX->mf & 1)	    {	    bcopy (pX->pI->pOpc, pS + 1, strlen (pX->pI->pOpc));	    bcopy ("FI", pS, 2);	    }        else	    {	    bcopy (pX->pI->pOpc, pS, strlen (pX->pI->pOpc));	    strcat (pS, mf[(int)pX->mf]);	    }        pY->pOpc = pY->obuf;        }    if (pX->pI->flag & POP)        {        bcopy (pX->pI->pOpc, pY->obuf, strlen (pX->pI->pOpc));        strcat (pY->obuf, "P");        pY->pOpc = pY->obuf;        }    /* get a register operand buffer, pY->rbuf */    if (pX->pI->flag & SREG2)        bcopy (sreg2[(int)pX->reg], pY->rbuf, strlen (sreg2[(int)pX->reg]));    if (pX->pI->flag & SREG3)        bcopy (sreg3[(int)pX->reg], pY->rbuf, strlen (sreg3[(int)pX->reg]));    /* get register number */    if (pX->pI->flag & REG)        {        if (pX->pI->flag & WFUL)	    pS = regw[(int)pX->d32][(int)pX->w][(int)pX->reg];        else	    pS = reg[(int)pX->d32][(int)pX->reg];        bcopy (pS, pY->rbuf, strlen (pS));        }    /* get MMX register number */    if (pX->pI->flag & MMXREG)	{	pS = regmmx[ (int) pX->reg];	bcopy (pS, pY->rbuf, strlen (pS));	}    /* XMM register */    if (pX->pI->flag2 & XMMREG)        {	pS = regxmm[ (int) pX->reg];	memcpy ((void *) pY->rbuf, (void *) pS, strlen (pS));        }    if (pX->pI->flag & EEE)        {        if (pX->pI->type == itMovC)            pS = eeec[(int)pX->reg];        else if (pX->pI->type == itMovD)            pS = eeed[(int)pX->reg];        else if (pX->pI->type == itMovT)            pS = eeet[(int)pX->reg];        bcopy (pS, pY->rbuf, strlen (pS));        pS = reg[(int)pX->d32][(int)pX->rm];        bcopy (pS, pY->mbuf, strlen (pS));        }    if (pX->pI->flag & AX)        {        if (pX->pI->flag & WFUL)	    {	    if (pX->pI->type == itMovAMtoMA)	        pS = regw[(int)pX->a32][(int)pX->w][0];	    else	        pS = regw[(int)pX->d32][(int)pX->w][0];	    }        else	    pS = reg[(int)pX->d32][0];        if (pX->pI->flag & REG)            bcopy (pS, pY->ibuf, strlen (pS));	else            bcopy (pS, pY->rbuf, strlen (pS));        }    if (pX->pI->flag & ST)        sprintf (pY->rbuf, st, pX->st);        /* get a displacement operand buffer, pY->dbuf */    if (pX->pI->flag & (D8|D16|DIS))        {        pY->pD = pX->pD + pX->lenO + pX->modrm + pX->sib;        if (pX->lenD == 1)	    pY->addr = *(pY->pD);        else if (pX->lenD == 2)	    pY->addr = *(short *)pY->pD;        else if (pX->lenD == 4)	    {	    if (pX->pI->flag & D16)	        pY->addr = *(int *)pY->pD & 0x0000ffff;	    else	        pY->addr = *(int *)pY->pD;	    }	sprintf (pY->dbuf, "0x%x", pY->addr);        }    if (pX->pI->flag & OFFSEL)        sprintf (pY->dbuf, "0x%x", *(USHORT *)(pX->pD + pX->lenO + pX->lenI));        if (pX->pI->flag & D16L8)        sprintf (pY->dbuf, "0x%x", *(UCHAR *)(pX->pD + pX->lenO + pX->lenI));    /* get an immediate operand buffer, pY->ibuf */    if (pX->pI->flag & (IMM|I8))        {        pY->pD = pX->pD + pX->lenO + pX->modrm + pX->sib + pX->lenD;        if (pX->lenI == 1)	    {	    if (pX->s)	        sprintf (pY->ibuf, "%d", *pY->pD);	    else	        sprintf (pY->ibuf, "0x%x", *(UCHAR *)pY->pD);	    }        if (pX->lenI == 2)	    sprintf (pY->ibuf, "0x%x", *(USHORT *)pY->pD);        if (pX->lenI == 4)	    sprintf (pY->ibuf, "0x%x", *(UINT *)pY->pD);               /*          * CMPSS and CMPPS opcode string is modified based on 	 * the imm value.	 */	if ((pX->pI->type == itCmpps) || (pX->pI->type == itCmpss))            {            /* verify that (0 < imm < 8) */            if (*(UCHAR *)pY->pD < 8)                {                if (pX->pI->type == itCmpps)                    pY->pOpc = cmpps[*(UCHAR *)pY->pD];                else                     pY->pOpc = cmpss[*(UCHAR *)pY->pD];                }            }	}    if (pX->pI->fla

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频污| 在线视频你懂得一区| 国产精品国产三级国产aⅴ中文| 在线看国产一区| 国产69精品久久777的优势| 亚洲成年人网站在线观看| 国产精品麻豆欧美日韩ww| 正在播放亚洲一区| 色999日韩国产欧美一区二区| 精东粉嫩av免费一区二区三区| 亚洲国产中文字幕在线视频综合| 国产精品久久久久久久久动漫| 欧美一区二区三区在线看 | 日韩一区二区三区四区五区六区| 福利电影一区二区| 一区二区三区在线播| 欧美猛男gaygay网站| 粉嫩aⅴ一区二区三区四区五区| 久久精品国产亚洲高清剧情介绍 | 亚洲国产成人精品视频| 中文字幕欧美日本乱码一线二线| 国产日韩精品久久久| 亚洲国产日产av| 欧美午夜精品一区| 午夜精品在线视频一区| 亚洲精品在线一区二区| 99re热视频这里只精品| 三级影片在线观看欧美日韩一区二区| 欧美tk—视频vk| 成人免费不卡视频| 亚洲国产视频一区二区| 精品成人一区二区三区四区| 91丨九色丨蝌蚪丨老版| 五月天久久比比资源色| 国产欧美一区二区在线观看| 欧美视频在线观看一区| 国产精品一区二区久久不卡 | 久久嫩草精品久久久精品| av资源网一区| 日本女优在线视频一区二区| 国产精品免费视频网站| 7777精品伊人久久久大香线蕉的 | 欧美精品亚洲二区| 国产精品99久久久久久久女警| 一区二区三区中文字幕电影 | 亚洲欧美怡红院| 欧美一区二区三区免费视频| 成人福利视频在线| 日韩在线播放一区二区| 国产精品人成在线观看免费| 欧美高清视频不卡网| 成人黄色软件下载| 免费一区二区视频| 亚洲丝袜制服诱惑| 欧美变态tickling挠脚心| 一本久久a久久免费精品不卡| 精一区二区三区| 亚洲午夜影视影院在线观看| 亚洲国产高清在线观看视频| 欧美一区二区播放| 色婷婷av一区二区三区gif | 国产在线视视频有精品| 亚洲韩国一区二区三区| 国产精品免费视频观看| 精品欧美一区二区在线观看| 欧美视频在线一区二区三区| av午夜精品一区二区三区| 国内一区二区在线| 日韩精品视频网| 亚洲欧美偷拍卡通变态| 久久久噜噜噜久久人人看| 91精品在线观看入口| 91黄视频在线| www.亚洲精品| 国产一区二区电影| 免费的成人av| 亚洲成人免费视| 亚洲日本va午夜在线影院| 久久久久久夜精品精品免费| 91精品黄色片免费大全| 在线精品视频免费播放| 波多野结衣中文字幕一区二区三区| 国产米奇在线777精品观看| 青椒成人免费视频| 午夜伦欧美伦电影理论片| 一区二区三区国产精品| 最新不卡av在线| 国产女人水真多18毛片18精品视频| 日韩小视频在线观看专区| 欧美日韩成人综合在线一区二区| 99精品视频在线观看| 成人听书哪个软件好| 国产精品77777竹菊影视小说| 久久国产剧场电影| 日本sm残虐另类| 日本最新不卡在线| 日韩高清不卡一区二区三区| 五月天激情综合| 午夜精品aaa| 午夜精品成人在线视频| 亚洲成年人影院| 香蕉成人伊视频在线观看| 亚洲自拍另类综合| 一二三四社区欧美黄| 亚洲欧美日韩成人高清在线一区| 中文字幕一区二区三区不卡| 国产精品久久777777| 中文字幕不卡的av| 欧美高清在线视频| 中文字幕乱码亚洲精品一区| 中文字幕高清一区| 国产精品丝袜在线| 国产精品国产三级国产a| 国产精品美女久久久久久久网站| 欧美激情艳妇裸体舞| 国产精品久久久一区麻豆最新章节| 中文一区二区在线观看| 国产精品久久久久一区二区三区共| 中文字幕高清不卡| 日韩美女视频19| 一区二区三区小说| 亚洲成人综合网站| 日本午夜精品视频在线观看 | 96av麻豆蜜桃一区二区| 色综合一个色综合| 欧美性色黄大片手机版| 欧美精品视频www在线观看| 欧美一级日韩免费不卡| 日韩美女视频在线| 久久精品亚洲精品国产欧美| 中文字幕精品三区| 一区二区三区中文字幕精品精品 | 爽爽淫人综合网网站| 青青草视频一区| 国产剧情一区二区| 不卡av在线网| 欧美日韩一二区| 亚洲制服欧美中文字幕中文字幕| 亚洲女厕所小便bbb| 亚洲第一成人在线| 蜜桃一区二区三区四区| 国产激情视频一区二区在线观看| 99久久国产免费看| 欧美日韩国产一区| 精品国产制服丝袜高跟| 国产精品久久久久精k8| 亚洲成人免费看| 国模一区二区三区白浆| 99re这里都是精品| 9191久久久久久久久久久| 亚洲精品在线观| 国产精品视频看| 亚洲综合一区二区精品导航| 男人操女人的视频在线观看欧美| 国产精品一区免费视频| 91视频免费看| 欧美一区二区三区免费在线看| 欧美激情在线一区二区三区| 夜夜亚洲天天久久| 免费人成黄页网站在线一区二区| 国产精品18久久久久久久久久久久 | 在线欧美日韩精品| 3d动漫精品啪啪1区2区免费| 日本一区二区三区四区| 亚洲在线一区二区三区| 韩国v欧美v亚洲v日本v| 色狠狠综合天天综合综合| 日韩欧美二区三区| 中文字幕亚洲一区二区av在线 | 久久久久久日产精品| 一区二区三区在线免费播放| 激情综合色综合久久综合| 色香蕉成人二区免费| 精品成a人在线观看| 一区二区三区国产精华| 国产一区二区美女| 欧美日韩在线播放一区| 中文字幕av一区二区三区| 天堂资源在线中文精品| 成人av网在线| 日韩丝袜美女视频| 亚洲视频香蕉人妖| 九色综合狠狠综合久久| 色88888久久久久久影院按摩| 久久影院视频免费| 一区二区三区美女| 狠狠色丁香婷婷综合| 欧美色电影在线| 国产精品毛片久久久久久久| 蜜臀精品久久久久久蜜臀| 91久久精品国产91性色tv| 欧美激情一二三区| 毛片av一区二区三区| 欧美专区日韩专区| 国产精品伦一区二区三级视频| 青青草原综合久久大伊人精品| 欧美最新大片在线看| 欧美日本国产视频| 亚洲欧洲精品一区二区精品久久久| 激情国产一区二区 |