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

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

?? x86bc.c

?? 支持AMD64的匯編編譯器源碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
    return (yasm_effaddr *)x86_ea;}/*@=compmempass@*/yasm_effaddr *yasm_x86__bc_insn_get_ea(yasm_bytecode *bc){    if (!bc)	return NULL;    if (bc->callback != &x86_bc_callback_insn)	yasm_internal_error(N_("Trying to get EA of non-instruction"));    return (yasm_effaddr *)(((x86_insn *)bc)->ea);}voidyasm_x86__bc_insn_opersize_override(yasm_bytecode *bc, unsigned int opersize){    if (!bc)	return;    if (bc->callback == &x86_bc_callback_insn) {	x86_insn *insn = (x86_insn *)bc;	insn->opersize = (unsigned char)opersize;    } else if (bc->callback == &x86_bc_callback_jmp) {	x86_jmp *jmp = (x86_jmp *)bc;	jmp->opersize = (unsigned char)opersize;    } else	yasm_internal_error(N_("OperSize override applied to non-instruction"));}voidyasm_x86__bc_insn_addrsize_override(yasm_bytecode *bc, unsigned int addrsize){    if (!bc)	return;    if (bc->callback == &x86_bc_callback_insn) {	x86_insn *insn = (x86_insn *)bc;	insn->addrsize = (unsigned char)addrsize;    } else if (bc->callback == &x86_bc_callback_jmp) {	x86_jmp *jmp = (x86_jmp *)bc;	jmp->addrsize = (unsigned char)addrsize;    } else	yasm_internal_error(N_("AddrSize override applied to non-instruction"));}voidyasm_x86__bc_insn_set_lockrep_prefix(yasm_bytecode *bc, unsigned int prefix,				     unsigned long line){    unsigned char *lockrep_pre = (unsigned char *)NULL;    if (!bc)	return;    if (bc->callback == &x86_bc_callback_insn) {	x86_insn *insn = (x86_insn *)bc;	lockrep_pre = &insn->lockrep_pre;    } else if (bc->callback == &x86_bc_callback_jmp) {	x86_jmp *jmp = (x86_jmp *)bc;	lockrep_pre = &jmp->lockrep_pre;    } else	yasm_internal_error(N_("LockRep prefix applied to non-instruction"));    if (*lockrep_pre != 0)	yasm__warning(YASM_WARN_GENERAL, line,		      N_("multiple LOCK or REP prefixes, using leftmost"));    *lockrep_pre = (unsigned char)prefix;}static voidx86_bc_insn_destroy(yasm_bytecode *bc){    x86_insn *insn = (x86_insn *)bc;    if (insn->ea)	yasm_ea_destroy((yasm_effaddr *)insn->ea);    if (insn->imm) {	yasm_expr_destroy(insn->imm->val);	yasm_xfree(insn->imm);    }}static voidx86_bc_jmp_destroy(yasm_bytecode *bc){    x86_jmp *jmp = (x86_jmp *)bc;    yasm_expr_destroy(jmp->target);}static voidx86_ea_destroy(yasm_effaddr *ea){}static voidx86_ea_print(const yasm_effaddr *ea, FILE *f, int indent_level){    const x86_effaddr *x86_ea = (const x86_effaddr *)ea;    fprintf(f, "%*sSegmentOv=%02x PCRel=%u\n", indent_level, "",	    (unsigned int)x86_ea->segment, (unsigned int)x86_ea->pcrel);    fprintf(f, "%*sModRM=%03o ValidRM=%u NeedRM=%u\n", indent_level, "",	    (unsigned int)x86_ea->modrm, (unsigned int)x86_ea->valid_modrm,	    (unsigned int)x86_ea->need_modrm);    fprintf(f, "%*sSIB=%03o ValidSIB=%u NeedSIB=%u\n", indent_level, "",	    (unsigned int)x86_ea->sib, (unsigned int)x86_ea->valid_sib,	    (unsigned int)x86_ea->need_sib);}static voidx86_bc_insn_print(const yasm_bytecode *bc, FILE *f, int indent_level){    const x86_insn *insn = (const x86_insn *)bc;    fprintf(f, "%*s_Instruction_\n", indent_level, "");    fprintf(f, "%*sEffective Address:", indent_level, "");    if (insn->ea) {	fprintf(f, "\n");	yasm_ea_print((yasm_effaddr *)insn->ea, f, indent_level+1);    } else	fprintf(f, " (nil)\n");    fprintf(f, "%*sImmediate Value:", indent_level, "");    if (!insn->imm)	fprintf(f, " (nil)\n");    else {	indent_level++;	fprintf(f, "\n%*sVal=", indent_level, "");	if (insn->imm->val)	    yasm_expr_print(insn->imm->val, f);	else	    fprintf(f, "(nil-SHOULDN'T HAPPEN)");	fprintf(f, "\n");	fprintf(f, "%*sLen=%u, Sign=%u\n", indent_level, "",		(unsigned int)insn->imm->len,		(unsigned int)insn->imm->sign);	indent_level--;    }    fprintf(f, "%*sOpcode: %02x %02x %02x OpLen=%u\n", indent_level,	    "", (unsigned int)insn->opcode[0],	    (unsigned int)insn->opcode[1],	    (unsigned int)insn->opcode[2],	    (unsigned int)insn->opcode_len);    fprintf(f,	    "%*sAddrSize=%u OperSize=%u LockRepPre=%02x SpPre=%02x REX=%03o\n",	    indent_level, "",	    (unsigned int)insn->addrsize,	    (unsigned int)insn->opersize,	    (unsigned int)insn->lockrep_pre,	    (unsigned int)insn->special_prefix,	    (unsigned int)insn->rex);    fprintf(f, "%*sShiftOp=%u BITS=%u\n", indent_level, "",	    (unsigned int)insn->shift_op,	    (unsigned int)insn->mode_bits);}static voidx86_bc_jmp_print(const yasm_bytecode *bc, FILE *f, int indent_level){    const x86_jmp *jmp = (const x86_jmp *)bc;    fprintf(f, "%*s_Jump_\n", indent_level, "");    fprintf(f, "%*sTarget=", indent_level, "");    yasm_expr_print(jmp->target, f);    fprintf(f, "%*sOrigin=\n", indent_level, "");    yasm_symrec_print(jmp->origin, f, indent_level+1);    fprintf(f, "\n%*sShort Form:\n", indent_level, "");    if (jmp->shortop.opcode_len == 0)	fprintf(f, "%*sNone\n", indent_level+1, "");    else	fprintf(f, "%*sOpcode: %02x %02x %02x OpLen=%u\n",		indent_level+1, "",		(unsigned int)jmp->shortop.opcode[0],		(unsigned int)jmp->shortop.opcode[1],		(unsigned int)jmp->shortop.opcode[2],		(unsigned int)jmp->shortop.opcode_len);    fprintf(f, "%*sNear Form:\n", indent_level, "");    if (jmp->nearop.opcode_len == 0)	fprintf(f, "%*sNone\n", indent_level+1, "");    else	fprintf(f, "%*sOpcode: %02x %02x %02x OpLen=%u\n",		indent_level+1, "",		(unsigned int)jmp->nearop.opcode[0],		(unsigned int)jmp->nearop.opcode[1],		(unsigned int)jmp->nearop.opcode[2],		(unsigned int)jmp->nearop.opcode_len);    fprintf(f, "%*sFar Form:\n", indent_level, "");    if (jmp->farop.opcode_len == 0)	fprintf(f, "%*sNone\n", indent_level+1, "");    else	fprintf(f, "%*sOpcode: %02x %02x %02x OpLen=%u\n",		indent_level+1, "",		(unsigned int)jmp->farop.opcode[0],		(unsigned int)jmp->farop.opcode[1],		(unsigned int)jmp->farop.opcode[2],		(unsigned int)jmp->farop.opcode_len);    fprintf(f, "%*sOpSel=", indent_level, "");    switch (jmp->op_sel) {	case JMP_NONE:	    fprintf(f, "None");	    break;	case JMP_SHORT:	    fprintf(f, "Short");	    break;	case JMP_NEAR:	    fprintf(f, "Near");	    break;	case JMP_SHORT_FORCED:	    fprintf(f, "Forced Short");	    break;	case JMP_NEAR_FORCED:	    fprintf(f, "Forced Near");	    break;	case JMP_FAR:	    fprintf(f, "Far");	    break;	default:	    fprintf(f, "UNKNOWN!!");	    break;    }    fprintf(f, "\n%*sAddrSize=%u OperSize=%u LockRepPre=%02x\n",	    indent_level, "",	    (unsigned int)jmp->addrsize,	    (unsigned int)jmp->opersize,	    (unsigned int)jmp->lockrep_pre);    fprintf(f, "%*sBITS=%u\n", indent_level, "",	    (unsigned int)jmp->mode_bits);}static yasm_bc_resolve_flagsx86_bc_insn_resolve(yasm_bytecode *bc, int save,		    yasm_calc_bc_dist_func calc_bc_dist){    x86_insn *insn = (x86_insn *)bc;    /*@null@*/ yasm_expr *temp;    x86_effaddr *x86_ea = insn->ea;    yasm_effaddr *ea = &x86_ea->ea;    yasm_immval *imm = insn->imm;    yasm_bc_resolve_flags retval = YASM_BC_RESOLVE_MIN_LEN;    if (ea) {	/* Create temp copy of disp, etc. */	x86_effaddr eat = *x86_ea;  /* structure copy */	unsigned char displen = ea->len;	if (ea->disp) {	    temp = yasm_expr_copy(ea->disp);	    assert(temp != NULL);	    /* Handle shortmov special-casing */	    if (insn->shortmov_op && insn->mode_bits == 64 &&		insn->addrsize == 32 &&		!yasm_expr__contains(temp, YASM_EXPR_REG)) {		yasm_x86__ea_set_disponly((yasm_effaddr *)&eat);		if (save) {		    /* Make the short form permanent. */		    insn->opcode[0] = insn->opcode[1];		}	    }	    /* Check validity of effective address and calc R/M bits of	     * Mod/RM byte and SIB byte.  We won't know the Mod field	     * of the Mod/RM byte until we know more about the	     * displacement.	     */	    switch (yasm_x86__expr_checkea(&temp, &insn->addrsize,		    insn->mode_bits, ea->nosplit, &displen, &eat.modrm,		    &eat.valid_modrm, &eat.need_modrm, &eat.sib,		    &eat.valid_sib, &eat.need_sib, &eat.pcrel, &insn->rex,		    calc_bc_dist)) {		case 1:		    yasm_expr_destroy(temp);		    /* failed, don't bother checking rest of insn */		    return YASM_BC_RESOLVE_UNKNOWN_LEN|YASM_BC_RESOLVE_ERROR;		case 2:		    yasm_expr_destroy(temp);		    /* failed, don't bother checking rest of insn */		    return YASM_BC_RESOLVE_UNKNOWN_LEN;		default:		    yasm_expr_destroy(temp);		    /* okay */		    break;	    }	    if (displen != 1) {		/* Fits into a word/dword, or unknown. */		retval = YASM_BC_RESOLVE_NONE;  /* may not be smallest size */		/* Handle unknown case, make displen word-sized */		if (displen == 0xff)		    displen = (insn->addrsize == 16) ? 2U : 4U;	    }	    /* If we had forced ea->len but had to override, save it now */	    if (ea->len != 0 && ea->len != displen)		ea->len = displen;	    if (save) {		*x86_ea = eat;	/* structure copy */		ea->len = displen;		if (displen == 0 && ea->disp) {		    yasm_expr_destroy(ea->disp);		    ea->disp = NULL;		}	    }	}	/* Compute length of ea and add to total */	bc->len += eat.need_modrm + (eat.need_sib ? 1:0) + displen;	bc->len += (eat.segment != 0) ? 1 : 0;    }    if (imm) {	const yasm_intnum *num;	unsigned int immlen = imm->len;	if (imm->val) {	    temp = yasm_expr_copy(imm->val);	    assert(temp != NULL);	    /* TODO: check imm->len vs. sized len from expr? */	    /* Handle shift_op special-casing */	    if (insn->shift_op && temp &&		(num = yasm_expr_get_intnum(&temp, calc_bc_dist))) {		if (num && yasm_intnum_get_uint(num) == 1) {		    /* We can use the ,1 form: subtract out the imm len		     * (as we add it back in below).		     */		    bc->len -= imm->len;		    if (save) {			/* Make the ,1 form permanent. */			insn->opcode[0] = insn->opcode[1];			/* Delete imm, as it's not needed. */			yasm_expr_destroy(imm->val);			yasm_xfree(imm);			insn->imm = (yasm_immval *)NULL;		    }		} else		    retval = YASM_BC_RESOLVE_NONE;  /* we could still get ,1 */		/* Not really necessary, but saves confusion over it. */		if (save)		    insn->shift_op = 0;	    }	    yasm_expr_destroy(temp);	}	bc->len += immlen;    }    bc->len += insn->opcode_len;    bc->len += (insn->addrsize != 0 && insn->addrsize != insn->mode_bits) ? 1:0;    if (insn->opersize != 0 &&	((insn->mode_bits != 64 && insn->opersize != insn->mode_bits) ||	 (insn->mode_bits == 64 && insn->opersize == 16)))	bc->len++;    bc->len += (insn->special_prefix != 0) ? 1:0;    bc->len += (insn->lockrep_pre != 0) ? 1:0;    if (insn->rex != 0xff &&	(insn->rex != 0 ||	 (insn->mode_bits == 64 && insn->opersize == 64 &&	  insn->def_opersize_64 != 64)))	bc->len++;    return retval;}static yasm_bc_resolve_flagsx86_bc_jmp_resolve(yasm_bytecode *bc, int save,		   yasm_calc_bc_dist_func calc_bc_dist){    x86_jmp *jmp = (x86_jmp *)bc;    yasm_bc_resolve_flags retval = YASM_BC_RESOLVE_MIN_LEN;    /*@null@*/ yasm_expr *temp;    /*@dependent@*/ /*@null@*/ const yasm_intnum *num;    long rel;    unsigned char opersize;    x86_jmp_opcode_sel jrtype = JMP_NONE;    /* As opersize may be 0, figure out its "real" value. */    opersize = (jmp->opersize == 0) ? jmp->mode_bits : jmp->opersize;    /* We only check to see if forced forms are actually legal if we're in     * save mode.  Otherwise we assume that they are legal.     */    switch (jmp->op_sel) {	case JMP_SHORT_FORCED:	    /* 1 byte relative displacement */	    jrtype = JMP_SHORT;	    if (save) {		temp = yasm_expr_copy(jmp->target);		temp = yasm_expr_create(YASM_EXPR_SUB, yasm_expr_expr(temp),					yasm_expr_sym(jmp->origin), bc->line);		num = yasm_expr_get_intnum(&temp, calc_bc_dist);		if (!num) {		    yasm__error(bc->line,			N_("short jump target external or out of segment"));		    yasm_expr_destroy(temp);		    return YASM_BC_RESOLVE_ERROR | YASM_BC_RESOLVE_UNKNOWN_LEN;		} else {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合av免费| 亚洲欧美日韩在线不卡| 免费观看在线综合| 欧美日韩精品专区| 亚洲一区二区视频在线观看| 色婷婷国产精品| 一区二区在线看| 欧美三级韩国三级日本三斤| 亚洲一区二区高清| 欧美精品日韩精品| 日韩精品一二三四| 欧美一区二区三区色| 免费在线观看不卡| 亚洲精品在线一区二区| 国产精品538一区二区在线| 久久久久久久久99精品| 粉嫩一区二区三区性色av| 国产精品传媒在线| 色婷婷久久久综合中文字幕| 亚洲一区二区在线观看视频| 666欧美在线视频| 免费成人你懂的| 久久免费视频一区| jizzjizzjizz欧美| 亚洲激情自拍偷拍| 欧美精品欧美精品系列| 久热成人在线视频| 国产亚洲欧美日韩日本| 99久久伊人久久99| 亚洲国产精品一区二区久久 | 久久久精品国产99久久精品芒果 | 国模大尺度一区二区三区| 国产日韩欧美综合在线| 91视频在线观看| 亚洲va天堂va国产va久| 精品国产精品网麻豆系列| 国产 日韩 欧美大片| 一区二区三区在线影院| 69久久99精品久久久久婷婷| 国产在线看一区| 亚洲视频小说图片| 51精品国自产在线| 高清免费成人av| 亚洲电影第三页| www久久精品| 色婷婷精品大在线视频| 美女免费视频一区二区| 国产精品日韩精品欧美在线| 在线观看av一区二区| 久久99久久精品| 亚洲天堂网中文字| 日韩一区二区电影网| 成人性生交大片免费看中文| 午夜私人影院久久久久| 国产亚洲精品7777| 欧美日韩一级大片网址| 国产精品亚洲人在线观看| 亚洲综合在线五月| 国产亚洲人成网站| 欧美亚洲国产bt| 国产福利精品一区二区| 亚洲一区精品在线| 国产亚洲婷婷免费| 91.xcao| 国产+成+人+亚洲欧洲自线| 亚洲图片有声小说| 欧美韩国日本一区| 欧美一区二区三区白人| 99久久精品免费| 久久丁香综合五月国产三级网站 | 国产色产综合色产在线视频| 欧美视频一区二| 国产91精品在线观看| 日韩高清欧美激情| 亚洲色图在线视频| 久久久亚洲高清| 欧美电影在线免费观看| www.成人在线| 激情综合色播激情啊| 亚洲电影一区二区| 亚洲欧美在线视频| 久久久久久久综合| 欧美一卡二卡三卡| 欧美视频自拍偷拍| av在线一区二区三区| 精品亚洲国产成人av制服丝袜| 亚洲精品乱码久久久久久黑人| 国产亚洲综合av| 日韩欧美国产成人一区二区| 在线免费观看日韩欧美| 成人性生交大片免费看视频在线| 美腿丝袜亚洲三区| 一区二区三区91| 中文字幕一区二区视频| 精品成人一区二区| 91精品国产综合久久国产大片 | 国产成人精品免费视频网站| 日产欧产美韩系列久久99| 亚洲黄色录像片| 国产精品电影一区二区三区| 国产偷国产偷亚洲高清人白洁| 日韩午夜激情电影| 欧美喷潮久久久xxxxx| 91精彩视频在线观看| 99久久精品免费看国产| 成人综合在线网站| 国产一区二区成人久久免费影院| 日韩电影在线免费| 日欧美一区二区| 五月激情综合婷婷| 午夜久久久影院| 亚洲成人久久影院| 亚洲国产wwwccc36天堂| 一区二区三区在线影院| 亚洲男同性视频| 亚洲视频 欧洲视频| 最新久久zyz资源站| 国产精品网站一区| 日本一区二区久久| 欧美激情一区在线观看| 国产欧美一区二区三区网站| 久久精品一级爱片| 国产欧美精品在线观看| 欧美高清在线一区二区| 国产女主播视频一区二区| 国产午夜久久久久| 国产女同互慰高潮91漫画| 欧美国产成人在线| 中文字幕日韩一区| 亚洲欧美日本韩国| 亚洲一区二区欧美激情| 午夜视频一区二区| 天天色天天操综合| 蜜桃久久久久久久| 国产最新精品精品你懂的| 国产一区二区免费在线| 国产麻豆成人传媒免费观看| 国产精品一区二区久久精品爱涩| 国产乱理伦片在线观看夜一区| 国产成人午夜片在线观看高清观看| 国产成人av电影| 99视频一区二区| 在线这里只有精品| 6080国产精品一区二区| 精品欧美一区二区久久| 久久精品在这里| 亚洲视频一二三| 性欧美大战久久久久久久久| 欧美aaaaaa午夜精品| 国产真实乱对白精彩久久| 丁香另类激情小说| 色视频一区二区| 91精品一区二区三区久久久久久| 日韩一区和二区| 国产拍欧美日韩视频二区| 亚洲视频一区在线观看| 午夜激情久久久| 国产精品自拍网站| 色哟哟国产精品| 在线播放中文一区| 久久青草欧美一区二区三区| 亚洲欧洲精品成人久久奇米网| 一区二区高清视频在线观看| 欧美a一区二区| 成人激情小说乱人伦| 欧美视频一区二| 精品少妇一区二区三区在线视频| 亚洲国产精品99久久久久久久久| 亚洲美女在线一区| 美国av一区二区| zzijzzij亚洲日本少妇熟睡| 欧美日本在线播放| 国产亚洲一区字幕| 亚洲伊人伊色伊影伊综合网| 久草中文综合在线| eeuss鲁一区二区三区| 欧美酷刑日本凌虐凌虐| 日本一区二区三区电影| 亚洲福利电影网| 国产成人免费高清| 欧美精品在线一区二区| 五月激情综合婷婷| 国产.欧美.日韩| 在线播放欧美女士性生活| 中文字幕av一区二区三区高 | 黑人巨大精品欧美一区| 91久久奴性调教| 精品美女被调教视频大全网站| 日韩理论片在线| 精品一区二区在线播放| 在线亚洲欧美专区二区| 久久久久久黄色| 首页综合国产亚洲丝袜| 丁香另类激情小说| 日韩天堂在线观看| 亚洲视频一区二区在线观看| 极品美女销魂一区二区三区免费| 色综合天天天天做夜夜夜夜做| 日韩女优毛片在线| 亚洲一区电影777|