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

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

?? decode.c

?? U-boot latest tarball
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************			Realmode X86 Emulator Library**		Copyright (C) 1991-2004 SciTech Software, Inc.*		     Copyright (C) David Mosberger-Tang*		       Copyright (C) 1999 Egbert Eich**  ========================================================================**  Permission to use, copy, modify, distribute, and sell this software and*  its documentation for any purpose is hereby granted without fee,*  provided that the above copyright notice appear in all copies and that*  both that copyright notice and this permission notice appear in*  supporting documentation, and that the name of the authors not be used*  in advertising or publicity pertaining to distribution of the software*  without specific, written prior permission.	The authors makes no*  representations about the suitability of this software for any purpose.*  It is provided "as is" without express or implied warranty.**  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO*  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF*  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR*  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR*  PERFORMANCE OF THIS SOFTWARE.**  ========================================================================** Language:	ANSI C* Environment:	Any* Developer:	Kendall Bennett** Description:	This file includes subroutines which are related to*		instruction decoding and accessess of immediate data via IP.  etc.*****************************************************************************/#include <common.h>#include "x86emu/x86emui.h"/*----------------------------- Implementation ----------------------------*//****************************************************************************REMARKS:Handles any pending asychronous interrupts.****************************************************************************/static void x86emu_intr_handle(void){    u8	intno;    if (M.x86.intr & INTR_SYNCH) {	intno = M.x86.intno;	if (_X86EMU_intrTab[intno]) {	    (*_X86EMU_intrTab[intno])(intno);	} else {	    push_word((u16)M.x86.R_FLG);	    CLEAR_FLAG(F_IF);	    CLEAR_FLAG(F_TF);	    push_word(M.x86.R_CS);	    M.x86.R_CS = mem_access_word(intno * 4 + 2);	    push_word(M.x86.R_IP);	    M.x86.R_IP = mem_access_word(intno * 4);	    M.x86.intr = 0;	}    }}/****************************************************************************PARAMETERS:intrnum - Interrupt number to raiseREMARKS:Raise the specified interrupt to be handled before the execution of thenext instruction.****************************************************************************/void x86emu_intr_raise(    u8 intrnum){    M.x86.intno = intrnum;    M.x86.intr |= INTR_SYNCH;}/****************************************************************************REMARKS:Main execution loop for the emulator. We return from here when the systemhalts, which is normally caused by a stack fault when we return from theoriginal real mode call.****************************************************************************/void X86EMU_exec(void){    u8 op1;    M.x86.intr = 0;    DB(x86emu_end_instr();)    for (;;) {DB(	if (CHECK_IP_FETCH())	    x86emu_check_ip_access();)	/* If debugging, save the IP and CS values. */	SAVE_IP_CS(M.x86.R_CS, M.x86.R_IP);	INC_DECODED_INST_LEN(1);	if (M.x86.intr) {	    if (M.x86.intr & INTR_HALTED) {DB(		if (M.x86.R_SP != 0) {		    printk("halted\n");		    X86EMU_trace_regs();		    }		else {		    if (M.x86.debug)			printk("Service completed successfully\n");		    })		return;	    }	    if (((M.x86.intr & INTR_SYNCH) && (M.x86.intno == 0 || M.x86.intno == 2)) ||		!ACCESS_FLAG(F_IF)) {		x86emu_intr_handle();	    }	}	op1 = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));	(*x86emu_optab[op1])(op1);	if (M.x86.debug & DEBUG_EXIT) {	    M.x86.debug &= ~DEBUG_EXIT;	    return;	}    }}/****************************************************************************REMARKS:Halts the system by setting the halted system flag.****************************************************************************/void X86EMU_halt_sys(void){    M.x86.intr |= INTR_HALTED;}/****************************************************************************PARAMETERS:mod	- Mod value from decoded byteregh	- Reg h value from decoded byteregl	- Reg l value from decoded byteREMARKS:Raise the specified interrupt to be handled before the execution of thenext instruction.NOTE: Do not inline this function, as (*sys_rdb) is already inline!****************************************************************************/void fetch_decode_modrm(    int *mod,    int *regh,    int *regl){    int fetched;DB( if (CHECK_IP_FETCH())	x86emu_check_ip_access();)    fetched = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));    INC_DECODED_INST_LEN(1);    *mod  = (fetched >> 6) & 0x03;    *regh = (fetched >> 3) & 0x07;    *regl = (fetched >> 0) & 0x07;}/****************************************************************************RETURNS:Immediate byte value read from instruction queueREMARKS:This function returns the immediate byte from the instruction queue, andmoves the instruction pointer to the next value.NOTE: Do not inline this function, as (*sys_rdb) is already inline!****************************************************************************/u8 fetch_byte_imm(void){    u8 fetched;DB( if (CHECK_IP_FETCH())	x86emu_check_ip_access();)    fetched = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));    INC_DECODED_INST_LEN(1);    return fetched;}/****************************************************************************RETURNS:Immediate word value read from instruction queueREMARKS:This function returns the immediate byte from the instruction queue, andmoves the instruction pointer to the next value.NOTE: Do not inline this function, as (*sys_rdw) is already inline!****************************************************************************/u16 fetch_word_imm(void){    u16 fetched;DB( if (CHECK_IP_FETCH())	x86emu_check_ip_access();)    fetched = (*sys_rdw)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP));    M.x86.R_IP += 2;    INC_DECODED_INST_LEN(2);    return fetched;}/****************************************************************************RETURNS:Immediate lone value read from instruction queueREMARKS:This function returns the immediate byte from the instruction queue, andmoves the instruction pointer to the next value.NOTE: Do not inline this function, as (*sys_rdw) is already inline!****************************************************************************/u32 fetch_long_imm(void){    u32 fetched;DB( if (CHECK_IP_FETCH())	x86emu_check_ip_access();)    fetched = (*sys_rdl)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP));    M.x86.R_IP += 4;    INC_DECODED_INST_LEN(4);    return fetched;}/****************************************************************************RETURNS:Value of the default data segmentREMARKS:Inline function that returns the default data segment for the currentinstruction.On the x86 processor, the default segment is not always DS if there isno segment override. Address modes such as -3[BP] or 10[BP+SI] all refer toaddresses relative to SS (ie: on the stack). So, at the minimum, alldecodings of addressing modes would have to set/clear a bit describingwhether the access is relative to DS or SS.  That is the function of thecpu-state-varible M.x86.mode. There are several potential states:    repe prefix seen  (handled elsewhere)    repne prefix seen  (ditto)    cs segment override    ds segment override    es segment override    fs segment override    gs segment override    ss segment override    ds/ss select (in absense of override)Each of the above 7 items are handled with a bit in the mode field.****************************************************************************/_INLINE u32 get_data_segment(void){#define GET_SEGMENT(segment)    switch (M.x86.mode & SYSMODE_SEGMASK) {      case 0:			/* default case: use ds register */      case SYSMODE_SEGOVR_DS:      case SYSMODE_SEGOVR_DS | SYSMODE_SEG_DS_SS:	return	M.x86.R_DS;      case SYSMODE_SEG_DS_SS:	/* non-overridden, use ss register */	return	M.x86.R_SS;      case SYSMODE_SEGOVR_CS:      case SYSMODE_SEGOVR_CS | SYSMODE_SEG_DS_SS:	return	M.x86.R_CS;      case SYSMODE_SEGOVR_ES:      case SYSMODE_SEGOVR_ES | SYSMODE_SEG_DS_SS:	return	M.x86.R_ES;      case SYSMODE_SEGOVR_FS:      case SYSMODE_SEGOVR_FS | SYSMODE_SEG_DS_SS:	return	M.x86.R_FS;      case SYSMODE_SEGOVR_GS:      case SYSMODE_SEGOVR_GS | SYSMODE_SEG_DS_SS:	return	M.x86.R_GS;      case SYSMODE_SEGOVR_SS:      case SYSMODE_SEGOVR_SS | SYSMODE_SEG_DS_SS:	return	M.x86.R_SS;      default:#ifdef	DEBUG	printk("error: should not happen:  multiple overrides.\n");#endif	HALT_SYS();	return 0;    }}/****************************************************************************PARAMETERS:offset	- Offset to load data fromRETURNS:Byte value read from the absolute memory location.NOTE: Do not inline this function as (*sys_rdX) is already inline!****************************************************************************/u8 fetch_data_byte(    uint offset){#ifdef DEBUG    if (CHECK_DATA_ACCESS())	x86emu_check_data_access((u16)get_data_segment(), offset);#endif    return (*sys_rdb)((get_data_segment() << 4) + offset);}/****************************************************************************PARAMETERS:offset	- Offset to load data fromRETURNS:Word value read from the absolute memory location.NOTE: Do not inline this function as (*sys_rdX) is already inline!****************************************************************************/u16 fetch_data_word(    uint offset){#ifdef DEBUG    if (CHECK_DATA_ACCESS())	x86emu_check_data_access((u16)get_data_segment(), offset);#endif    return (*sys_rdw)((get_data_segment() << 4) + offset);}/****************************************************************************PARAMETERS:offset	- Offset to load data fromRETURNS:Long value read from the absolute memory location.NOTE: Do not inline this function as (*sys_rdX) is already inline!****************************************************************************/u32 fetch_data_long(    uint offset){#ifdef DEBUG    if (CHECK_DATA_ACCESS())	x86emu_check_data_access((u16)get_data_segment(), offset);#endif    return (*sys_rdl)((get_data_segment() << 4) + offset);}/****************************************************************************PARAMETERS:segment - Segment to load data fromoffset	- Offset to load data fromRETURNS:Byte value read from the absolute memory location.NOTE: Do not inline this function as (*sys_rdX) is already inline!****************************************************************************/u8 fetch_data_byte_abs(    uint segment,    uint offset){#ifdef DEBUG    if (CHECK_DATA_ACCESS())	x86emu_check_data_access(segment, offset);#endif    return (*sys_rdb)(((u32)segment << 4) + offset);}/****************************************************************************PARAMETERS:segment - Segment to load data fromoffset	- Offset to load data fromRETURNS:Word value read from the absolute memory location.NOTE: Do not inline this function as (*sys_rdX) is already inline!****************************************************************************/u16 fetch_data_word_abs(

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品v日韩精品| 国产精品久久久久久久久晋中| 国产91精品在线观看| 激情综合一区二区三区| 美女在线视频一区| 麻豆成人91精品二区三区| 免费成人在线网站| 久久精品99久久久| 国产成人精品一区二| 国产精品香蕉一区二区三区| 国产福利精品导航| 国产福利一区二区三区视频| 成人三级在线视频| 色哟哟国产精品| 欧美视频三区在线播放| 欧美日本一区二区三区| 欧美xxxx老人做受| 国产日韩精品视频一区| 最新久久zyz资源站| 亚洲综合色自拍一区| 日韩精品亚洲一区二区三区免费| 日本中文字幕一区二区有限公司| 麻豆一区二区三区| 国产精品中文字幕一区二区三区| 久久精品国产亚洲aⅴ| 另类专区欧美蜜桃臀第一页| 国产福利一区二区三区视频| 91免费版pro下载短视频| 欧美视频在线一区二区三区| 日韩欧美一级特黄在线播放| 国产日韩综合av| 石原莉奈在线亚洲三区| 激情偷乱视频一区二区三区| 国产在线一区二区| 99久久国产综合精品麻豆| 欧美日韩综合在线| 欧美韩日一区二区三区四区| 亚洲免费观看高清完整版在线观看熊| 丝袜诱惑亚洲看片| 成人午夜视频在线| 日韩区在线观看| 中文字幕在线播放不卡一区| 麻豆91精品视频| 91小视频在线免费看| 精品久久久久久无| 亚洲自拍偷拍麻豆| 精品在线播放免费| 欧美性xxxxxx少妇| 中文字幕在线不卡国产视频| 亚洲成人精品一区| 成人黄色国产精品网站大全在线免费观看| 精品视频色一区| 中文字幕欧美日本乱码一线二线| 亚洲国产欧美一区二区三区丁香婷| 国产精品99久久久久久宅男| 欧美高清精品3d| 一区二区在线观看视频在线观看| 国产精品一二三在| 日韩一级片网站| 亚洲综合一区二区精品导航| www.日韩精品| 久久精品欧美日韩精品| 精品中文字幕一区二区| 欧美精品精品一区| 一个色在线综合| 日本高清无吗v一区| 中文字幕欧美三区| 粉嫩在线一区二区三区视频| 2023国产精品自拍| 久久精品国产免费| 日韩欧美www| 男男视频亚洲欧美| 欧美一区二区人人喊爽| 偷窥国产亚洲免费视频| 91国产精品成人| 亚洲精品高清在线| 97久久精品人人做人人爽| 亚洲国产一二三| 欧洲一区在线电影| 亚洲一区二区三区视频在线| 色美美综合视频| 亚洲综合小说图片| 欧美日韩一级视频| 蜜臀va亚洲va欧美va天堂| 精品少妇一区二区三区| 韩国毛片一区二区三区| 精品乱人伦小说| 国产精品2024| 18欧美亚洲精品| 欧美唯美清纯偷拍| 蜜乳av一区二区| 精品国产一区二区三区忘忧草| 国产精品911| 自拍偷在线精品自拍偷无码专区| 26uuu国产在线精品一区二区| 一区二区三区在线免费观看| 日韩精品一区二区三区在线观看| 欧美色成人综合| 色国产精品一区在线观看| 26uuu精品一区二区在线观看| 成人黄色电影在线| 国产麻豆日韩欧美久久| 日韩精品五月天| 亚洲综合久久久久| 日韩毛片在线免费观看| 国产亚洲午夜高清国产拍精品 | 精品国产麻豆免费人成网站| 95精品视频在线| 国产激情一区二区三区桃花岛亚洲| 日韩中文欧美在线| 性欧美大战久久久久久久久| 一区二区在线观看视频 | 国产三区在线成人av| 日韩欧美国产综合一区| 欧美一区二区三区婷婷月色| 欧美色综合网站| 欧美视频一区在线| 欧美精品自拍偷拍| 欧美一区二区视频网站| 69久久99精品久久久久婷婷| 制服丝袜亚洲精品中文字幕| 欧美日韩一区成人| 在线综合视频播放| 欧美一区二区三区四区五区| 日韩一区二区电影网| 日韩小视频在线观看专区| 精品毛片乱码1区2区3区| 久久美女艺术照精彩视频福利播放 | 国内精品久久久久影院薰衣草| 日本不卡1234视频| 精品一区二区三区在线播放视频 | 99久久国产综合色|国产精品| 成人国产一区二区三区精品| 99精品视频免费在线观看| 91在线视频免费91| 欧美性大战久久久| 欧美xxxxxxxx| 国产精品每日更新| 亚洲一区二区三区影院| 奇米精品一区二区三区在线观看一| 免费在线观看视频一区| 国产成都精品91一区二区三| 91激情五月电影| 欧美日韩国产在线观看| 精品国产一区久久| 亚洲欧洲日韩一区二区三区| 亚洲国产婷婷综合在线精品| 九色综合国产一区二区三区| caoporen国产精品视频| 色噜噜狠狠一区二区三区果冻| 欧美高清hd18日本| 欧美国产激情一区二区三区蜜月| 日韩毛片精品高清免费| 日本午夜精品一区二区三区电影| 国产精品一区二区x88av| 91极品视觉盛宴| 精品对白一区国产伦| 亚洲免费伊人电影| 黄色小说综合网站| 91麻豆免费观看| 精品成人佐山爱一区二区| 最新欧美精品一区二区三区| 久久精品国产在热久久| 色天使久久综合网天天| 欧美电影免费观看高清完整版在线观看| 中文字幕成人网| 老司机一区二区| 欧洲人成人精品| 日本一区二区成人在线| 日韩av不卡一区二区| 91免费国产视频网站| 精品理论电影在线| 午夜精彩视频在线观看不卡| 成人免费视频视频在线观看免费| 欧美一区二区三区播放老司机| 亚洲欧美区自拍先锋| 国产激情视频一区二区三区欧美 | 日韩国产欧美在线观看| 97久久人人超碰| 国产亚洲美州欧州综合国| 美女视频黄免费的久久| 欧美视频一区在线| 亚洲精品福利视频网站| 成人高清免费观看| 亚洲国产精品黑人久久久| 精品一区二区三区免费观看| 51精品秘密在线观看| 亚洲精品国产无套在线观| 粉嫩aⅴ一区二区三区四区| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲va韩国va欧美va| 日本道免费精品一区二区三区| 国产精品免费免费| 国产精品456露脸| 久久亚洲精品国产精品紫薇| 麻豆精品一区二区av白丝在线| 欧美一区二区三区在线观看视频 | 国产一区二区精品久久| 日韩一区二区高清| 久草在线在线精品观看|