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

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

?? prim_ops.c

?? u-boot1.3.0的原碼,從配了網(wǎng)絡(luò)驅(qū)動和FLASH的驅(qū)動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 5 頁
字號:
	CLEAR_FLAG(F_OF);    } else {	SET_FLAG(F_CF);	SET_FLAG(F_OF);    }}/****************************************************************************REMARKS:Implements the MUL instruction and side effects.****************************************************************************/void mul_byte(u8 s){    u16 res = (u16)(M.x86.R_AL * s);    M.x86.R_AX = res;    if (M.x86.R_AH == 0) {	CLEAR_FLAG(F_CF);	CLEAR_FLAG(F_OF);    } else {	SET_FLAG(F_CF);	SET_FLAG(F_OF);    }}/****************************************************************************REMARKS:Implements the MUL instruction and side effects.****************************************************************************/void mul_word(u16 s){    u32 res = M.x86.R_AX * s;    M.x86.R_AX = (u16)res;    M.x86.R_DX = (u16)(res >> 16);    if (M.x86.R_DX == 0) {	CLEAR_FLAG(F_CF);	CLEAR_FLAG(F_OF);    } else {	SET_FLAG(F_CF);	SET_FLAG(F_OF);    }}/****************************************************************************REMARKS:Implements the MUL instruction and side effects.****************************************************************************/void mul_long(u32 s){#ifdef	__HAS_LONG_LONG__    u64 res = (u32)M.x86.R_EAX * (u32)s;    M.x86.R_EAX = (u32)res;    M.x86.R_EDX = (u32)(res >> 32);#else    u32 a,a_lo,a_hi;    u32 s_lo,s_hi;    u32 rlo_lo,rlo_hi,rhi_lo;    a = M.x86.R_EAX;    a_lo = a & 0xFFFF;    a_hi = a >> 16;    s_lo = s & 0xFFFF;    s_hi = s >> 16;    rlo_lo = a_lo * s_lo;    rlo_hi = (a_hi * s_lo + a_lo * s_hi) + (rlo_lo >> 16);    rhi_lo = a_hi * s_hi + (rlo_hi >> 16);    M.x86.R_EAX = (rlo_hi << 16) | (rlo_lo & 0xFFFF);    M.x86.R_EDX = rhi_lo;#endif    if (M.x86.R_EDX == 0) {	CLEAR_FLAG(F_CF);	CLEAR_FLAG(F_OF);    } else {	SET_FLAG(F_CF);	SET_FLAG(F_OF);    }}/****************************************************************************REMARKS:Implements the IDIV instruction and side effects.****************************************************************************/void idiv_byte(u8 s){    s32 dvd, div, mod;    dvd = (s16)M.x86.R_AX;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    div = dvd / (s8)s;    mod = dvd % (s8)s;    if (abs(div) > 0x7f) {	x86emu_intr_raise(0);	return;    }    M.x86.R_AL = (s8) div;    M.x86.R_AH = (s8) mod;}/****************************************************************************REMARKS:Implements the IDIV instruction and side effects.****************************************************************************/void idiv_word(u16 s){    s32 dvd, div, mod;    dvd = (((s32)M.x86.R_DX) << 16) | M.x86.R_AX;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    div = dvd / (s16)s;    mod = dvd % (s16)s;    if (abs(div) > 0x7fff) {	x86emu_intr_raise(0);	return;    }    CLEAR_FLAG(F_CF);    CLEAR_FLAG(F_SF);    CONDITIONAL_SET_FLAG(div == 0, F_ZF);    set_parity_flag(mod);    M.x86.R_AX = (u16)div;    M.x86.R_DX = (u16)mod;}/****************************************************************************REMARKS:Implements the IDIV instruction and side effects.****************************************************************************/void idiv_long(u32 s){#ifdef	__HAS_LONG_LONG__    s64 dvd, div, mod;    dvd = (((s64)M.x86.R_EDX) << 32) | M.x86.R_EAX;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    div = dvd / (s32)s;    mod = dvd % (s32)s;    if (abs(div) > 0x7fffffff) {	x86emu_intr_raise(0);	return;    }#else    s32 div = 0, mod;    s32 h_dvd = M.x86.R_EDX;    u32 l_dvd = M.x86.R_EAX;    u32 abs_s = s & 0x7FFFFFFF;    u32 abs_h_dvd = h_dvd & 0x7FFFFFFF;    u32 h_s = abs_s >> 1;    u32 l_s = abs_s << 31;    int counter = 31;    int carry;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    do {	div <<= 1;	carry = (l_dvd >= l_s) ? 0 : 1;	if (abs_h_dvd < (h_s + carry)) {	    h_s >>= 1;	    l_s = abs_s << (--counter);	    continue;	} else {	    abs_h_dvd -= (h_s + carry);	    l_dvd = carry ? ((0xFFFFFFFF - l_s) + l_dvd + 1)		: (l_dvd - l_s);	    h_s >>= 1;	    l_s = abs_s << (--counter);	    div |= 1;	    continue;	}    } while (counter > -1);    /* overflow */    if (abs_h_dvd || (l_dvd > abs_s)) {	x86emu_intr_raise(0);	return;    }    /* sign */    div |= ((h_dvd & 0x10000000) ^ (s & 0x10000000));    mod = l_dvd;#endif    CLEAR_FLAG(F_CF);    CLEAR_FLAG(F_AF);    CLEAR_FLAG(F_SF);    SET_FLAG(F_ZF);    set_parity_flag(mod);    M.x86.R_EAX = (u32)div;    M.x86.R_EDX = (u32)mod;}/****************************************************************************REMARKS:Implements the DIV instruction and side effects.****************************************************************************/void div_byte(u8 s){    u32 dvd, div, mod;    dvd = M.x86.R_AX;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    div = dvd / (u8)s;    mod = dvd % (u8)s;    if (abs(div) > 0xff) {	x86emu_intr_raise(0);	return;    }    M.x86.R_AL = (u8)div;    M.x86.R_AH = (u8)mod;}/****************************************************************************REMARKS:Implements the DIV instruction and side effects.****************************************************************************/void div_word(u16 s){    u32 dvd, div, mod;    dvd = (((u32)M.x86.R_DX) << 16) | M.x86.R_AX;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    div = dvd / (u16)s;    mod = dvd % (u16)s;    if (abs(div) > 0xffff) {	x86emu_intr_raise(0);	return;    }    CLEAR_FLAG(F_CF);    CLEAR_FLAG(F_SF);    CONDITIONAL_SET_FLAG(div == 0, F_ZF);    set_parity_flag(mod);    M.x86.R_AX = (u16)div;    M.x86.R_DX = (u16)mod;}/****************************************************************************REMARKS:Implements the DIV instruction and side effects.****************************************************************************/void div_long(u32 s){#ifdef	__HAS_LONG_LONG__    u64 dvd, div, mod;    dvd = (((u64)M.x86.R_EDX) << 32) | M.x86.R_EAX;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    div = dvd / (u32)s;    mod = dvd % (u32)s;    if (abs(div) > 0xffffffff) {	x86emu_intr_raise(0);	return;    }#else    s32 div = 0, mod;    s32 h_dvd = M.x86.R_EDX;    u32 l_dvd = M.x86.R_EAX;    u32 h_s = s;    u32 l_s = 0;    int counter = 32;    int carry;    if (s == 0) {	x86emu_intr_raise(0);	return;    }    do {	div <<= 1;	carry = (l_dvd >= l_s) ? 0 : 1;	if (h_dvd < (h_s + carry)) {	    h_s >>= 1;	    l_s = s << (--counter);	    continue;	} else {	    h_dvd -= (h_s + carry);	    l_dvd = carry ? ((0xFFFFFFFF - l_s) + l_dvd + 1)		: (l_dvd - l_s);	    h_s >>= 1;	    l_s = s << (--counter);	    div |= 1;	    continue;	}    } while (counter > -1);    /* overflow */    if (h_dvd || (l_dvd > s)) {	x86emu_intr_raise(0);	return;    }    mod = l_dvd;#endif    CLEAR_FLAG(F_CF);    CLEAR_FLAG(F_AF);    CLEAR_FLAG(F_SF);    SET_FLAG(F_ZF);    set_parity_flag(mod);    M.x86.R_EAX = (u32)div;    M.x86.R_EDX = (u32)mod;}/****************************************************************************REMARKS:Implements the IN string instruction and side effects.****************************************************************************/static void single_in(int size){    if(size == 1)	store_data_byte_abs(M.x86.R_ES, M.x86.R_DI,(*sys_inb)(M.x86.R_DX));    else if (size == 2)	store_data_word_abs(M.x86.R_ES, M.x86.R_DI,(*sys_inw)(M.x86.R_DX));    else	store_data_long_abs(M.x86.R_ES, M.x86.R_DI,(*sys_inl)(M.x86.R_DX));}void ins(int size){    int inc = size;    if (ACCESS_FLAG(F_DF)) {	inc = -size;    }    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {	/* dont care whether REPE or REPNE */	/* in until CX is ZERO. */	u32 count = ((M.x86.mode & SYSMODE_PREFIX_DATA) ?		     M.x86.R_ECX : M.x86.R_CX);	while (count--) {	  single_in(size);	  M.x86.R_DI += inc;	  }	M.x86.R_CX = 0;	if (M.x86.mode & SYSMODE_PREFIX_DATA) {	    M.x86.R_ECX = 0;	}	M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);    } else {	single_in(size);	M.x86.R_DI += inc;    }}/****************************************************************************REMARKS:Implements the OUT string instruction and side effects.****************************************************************************/static void single_out(int size){     if(size == 1)       (*sys_outb)(M.x86.R_DX,fetch_data_byte_abs(M.x86.R_ES, M.x86.R_SI));     else if (size == 2)       (*sys_outw)(M.x86.R_DX,fetch_data_word_abs(M.x86.R_ES, M.x86.R_SI));     else       (*sys_outl)(M.x86.R_DX,fetch_data_long_abs(M.x86.R_ES, M.x86.R_SI));}void outs(int size){    int inc = size;    if (ACCESS_FLAG(F_DF)) {	inc = -size;    }    if (M.x86.mode & (SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE)) {	/* dont care whether REPE or REPNE */	/* out until CX is ZERO. */	u32 count = ((M.x86.mode & SYSMODE_PREFIX_DATA) ?		     M.x86.R_ECX : M.x86.R_CX);	while (count--) {	  single_out(size);	  M.x86.R_SI += inc;	  }	M.x86.R_CX = 0;	if (M.x86.mode & SYSMODE_PREFIX_DATA) {	    M.x86.R_ECX = 0;	}	M.x86.mode &= ~(SYSMODE_PREFIX_REPE | SYSMODE_PREFIX_REPNE);    } else {	single_out(size);	M.x86.R_SI += inc;    }}/****************************************************************************PARAMETERS:addr	- Address to fetch word fromREMARKS:Fetches a word from emulator memory using an absolute address.****************************************************************************/u16 mem_access_word(int addr){DB( if (CHECK_MEM_ACCESS())      x86emu_check_mem_access(addr);)    return (*sys_rdw)(addr);}/****************************************************************************REMARKS:Pushes a word onto the stack.NOTE: Do not inline this, as (*sys_wrX) is already inline!****************************************************************************/void push_word(u16 w){DB( if (CHECK_SP_ACCESS())      x86emu_check_sp_access();)    M.x86.R_SP -= 2;    (*sys_wrw)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP, w);}/****************************************************************************REMARKS:Pushes a long onto the stack.NOTE: Do not inline this, as (*sys_wrX) is already inline!****************************************************************************/void push_long(u32 w){DB( if (CHECK_SP_ACCESS())      x86emu_check_sp_access();)    M.x86.R_SP -= 4;    (*sys_wrl)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP, w);}/****************************************************************************REMARKS:Pops a word from the stack.NOTE: Do not inline this, as (*sys_rdX) is already inline!****************************************************************************/u16 pop_word(void){    u16 res;DB( if (CHECK_SP_ACCESS())      x86emu_check_sp_access();)    res = (*sys_rdw)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP);    M.x86.R_SP += 2;    return res;}/****************************************************************************REMARKS:Pops a long from the stack.NOTE: Do not inline this, as (*sys_rdX) is already inline!****************************************************************************/u32 pop_long(void){    u32 res;DB( if (CHECK_SP_ACCESS())      x86emu_check_sp_access();)    res = (*sys_rdl)(((u32)M.x86.R_SS << 4)  + M.x86.R_SP);    M.x86.R_SP += 4;    return res;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美体内she精高潮| 日韩精品福利网| 国产一区久久久| 欧美午夜免费电影| 亚洲成在线观看| 丁香五精品蜜臀久久久久99网站 | 久久久久久久av麻豆果冻| 日韩电影在线观看电影| 99re热这里只有精品视频| 国产精品毛片久久久久久| 成人高清视频免费观看| 国产精品成人在线观看| 不卡视频一二三| 亚洲摸摸操操av| 精品视频一区二区不卡| 偷拍亚洲欧洲综合| 欧美mv和日韩mv国产网站| 国产一本一道久久香蕉| 亚洲国产精品国自产拍av| 99国产精品国产精品久久| 亚洲人成网站色在线观看| 在线精品视频免费播放| 蜜桃av一区二区在线观看| 久久色中文字幕| 91免费小视频| 日韩国产高清影视| 欧美成人精品3d动漫h| 国产91精品精华液一区二区三区| 国产精品日产欧美久久久久| 91免费看`日韩一区二区| 香蕉成人啪国产精品视频综合网| 日韩亚洲国产中文字幕欧美| 国产乱理伦片在线观看夜一区| 久久免费偷拍视频| 91视频国产观看| 三级不卡在线观看| 亚洲国产精品传媒在线观看| 欧美亚日韩国产aⅴ精品中极品| 日韩国产精品久久| 中文字幕一区二区三区四区不卡 | 欧美三级电影在线看| 蜜臀av性久久久久av蜜臀妖精| 久久精品男人天堂av| 日本道精品一区二区三区| 麻豆国产精品777777在线| 国产精品视频线看| 欧美裸体一区二区三区| 成人午夜精品一区二区三区| 亚洲国产精品久久久男人的天堂| 91久久精品国产91性色tv| 久久精品国产成人一区二区三区| 国产欧美精品一区| 91麻豆精品国产91久久久久久久久 | 极品少妇xxxx精品少妇偷拍| 一区二区三区在线视频观看| 日韩欧美国产综合| 91福利国产精品| 国产乱人伦精品一区二区在线观看 | 国产精品一区2区| 亚洲mv大片欧洲mv大片精品| 国产欧美一区二区精品忘忧草| 欧美日韩国产乱码电影| 97精品国产露脸对白| 九九久久精品视频| 日韩精品电影一区亚洲| 亚洲女人的天堂| 国产精品久久毛片| 久久久久久久久99精品| 69堂亚洲精品首页| 色妹子一区二区| 成人午夜短视频| 麻豆精品在线观看| 视频在线观看91| 亚洲综合在线视频| 亚洲天堂久久久久久久| 国产精品人成在线观看免费| 久久久久99精品一区| 日韩欧美中文字幕精品| 欧美午夜免费电影| 91高清在线观看| 92国产精品观看| 国产夫妻精品视频| 日本在线不卡视频一二三区| 亚洲综合免费观看高清完整版| 亚洲四区在线观看| 亚洲欧美日韩国产综合| 中文字幕一区二区三区在线不卡 | 欧美激情资源网| 日韩免费性生活视频播放| 欧美色偷偷大香| 91黄色激情网站| 欧美综合欧美视频| 欧美日韩一本到| 欧美剧在线免费观看网站 | 依依成人综合视频| 亚洲欧美激情插 | 欧美在线免费播放| 91福利国产成人精品照片| 欧美丝袜丝交足nylons图片| 欧美日韩在线播放| 91精品久久久久久蜜臀| 欧美一区二区精品在线| 欧美成人综合网站| 国产午夜精品美女毛片视频| 久久九九久久九九| 综合自拍亚洲综合图不卡区| 日韩伦理电影网| 亚洲精品日日夜夜| 亚洲成人一二三| 蜜桃视频在线一区| 国产99久久久久久免费看农村| 成人av电影在线播放| 91久久精品国产91性色tv| 欧美日韩国产一二三| 欧美一二区视频| 国产欧美日韩激情| 亚洲黄色小视频| 天天综合天天做天天综合| 韩国女主播成人在线| 成人h动漫精品一区二区| 一本色道久久综合亚洲91| 欧美亚洲日本国产| 26uuu久久天堂性欧美| 中文av一区特黄| 亚洲成a人在线观看| 国产一区二区三区四区五区入口| gogogo免费视频观看亚洲一| 欧美撒尿777hd撒尿| 欧美精品一区二区三区一线天视频| 国产精品伦理一区二区| 日韩成人免费看| 国产a区久久久| 日本韩国一区二区三区| 日韩西西人体444www| 国产精品美女久久福利网站| 另类成人小视频在线| 色999日韩国产欧美一区二区| 日韩亚洲欧美成人一区| 亚洲欧洲成人av每日更新| 美女尤物国产一区| 99re免费视频精品全部| 精品国产欧美一区二区| 亚洲激情综合网| 国产aⅴ综合色| 欧美一二三区精品| 亚洲一区av在线| 高清视频一区二区| 91精品国产综合久久久久久| 国产精品欧美一区二区三区| 蜜桃一区二区三区四区| 欧美综合一区二区三区| 国产亚洲一区二区在线观看| 亚洲在线视频网站| 久久成人免费日本黄色| 欧美日韩久久久久久| 综合精品久久久| 激情综合网天天干| 日韩午夜精品电影| 免费亚洲电影在线| 日韩一级免费一区| 极品美女销魂一区二区三区| 精品少妇一区二区三区视频免付费 | 国产寡妇亲子伦一区二区| 欧美成人video| 麻豆成人91精品二区三区| 在线综合视频播放| 免费在线看一区| 精品国产三级电影在线观看| 国产一区不卡在线| 亚洲国产精品av| 99久久精品久久久久久清纯| 国产精品久久久久婷婷| 99在线热播精品免费| 亚洲欧美激情小说另类| 欧美性猛交xxxxxxxx| 日韩制服丝袜先锋影音| 欧美成人精品福利| 国产成人综合精品三级| 欧美韩国一区二区| 91色在线porny| 日韩高清在线电影| 国产午夜亚洲精品不卡| 99综合电影在线视频| 亚洲午夜精品一区二区三区他趣| 欧美一区二区三区在线| 国产美女在线精品| 亚洲精品欧美在线| 666欧美在线视频| 精品一区二区日韩| 中文字幕日韩精品一区| 欧美三区在线观看| 黑人巨大精品欧美一区| 中文字幕综合网| 欧美久久久久久久久中文字幕| 免费久久99精品国产| 日本一二三四高清不卡| 欧美日韩精品久久久| 国产一区二区电影| 亚洲三级在线免费观看| 日韩一级免费一区|