亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲视频一区二区免费在线观看| 高清免费成人av| 一区二区三区在线不卡| 1024国产精品| 亚洲女人的天堂| 一区二区三区美女视频| 一区二区三区影院| 亚洲不卡在线观看| 日韩av在线免费观看不卡| 日韩影视精彩在线| 久久精品国产一区二区三| 老司机精品视频在线| 看电视剧不卡顿的网站| 久久66热偷产精品| 韩国三级在线一区| 国产精品综合视频| 成人黄色国产精品网站大全在线免费观看 | 成人h版在线观看| 99久久精品一区二区| 色域天天综合网| 欧美日韩一区中文字幕| 日韩一区二区免费在线电影 | 亚洲人午夜精品天堂一二香蕉| 亚洲视频一区二区免费在线观看| 一区二区三区在线播| 日韩精品一区第一页| 国产一区 二区| 99在线热播精品免费| 欧洲视频一区二区| 日韩欧美久久一区| 国产精品美女久久久久aⅴ国产馆| 亚洲另类在线一区| 日韩精品91亚洲二区在线观看| 美女视频黄久久| 国产99久久久国产精品潘金网站| 色诱视频网站一区| 91精品福利在线一区二区三区 | 日韩avvvv在线播放| 国产揄拍国内精品对白| 99精品在线免费| 欧美一区二区在线不卡| 国产精品拍天天在线| 香蕉乱码成人久久天堂爱免费| 国产在线精品一区二区不卡了| 99精品国产视频| 日韩欧美二区三区| 亚洲欧洲av色图| 久久国产三级精品| 91色porny在线视频| 欧美一区三区二区| 国产精品人成在线观看免费| 日韩中文字幕亚洲一区二区va在线| 国产精一品亚洲二区在线视频| 色婷婷亚洲精品| 久久久亚洲国产美女国产盗摄| 亚洲一区在线观看免费 | 国产传媒一区在线| 精品视频999| 欧美国产亚洲另类动漫| 午夜精品一区二区三区电影天堂 | 日韩美女一区二区三区四区| 国产精品人妖ts系列视频| 蜜桃久久久久久久| 日本韩国一区二区三区视频| 久久久久免费观看| 日韩精品久久理论片| 91美女精品福利| 久久久九九九九| 日韩精品一区第一页| 日本道精品一区二区三区| 国产欧美一区二区三区鸳鸯浴| 免费在线看一区| 欧美午夜精品电影| 亚洲欧美在线高清| 国产盗摄女厕一区二区三区| 日韩欧美二区三区| 天天操天天干天天综合网| 色噜噜狠狠成人网p站| 久久精品一区二区三区不卡 | 日韩一区二区电影| 亚洲一二三四在线| caoporn国产一区二区| 久久久久久久久久看片| 蜜桃视频免费观看一区| 555www色欧美视频| 亚洲国产另类av| 在线观看网站黄不卡| 1区2区3区国产精品| 成人高清在线视频| 欧美激情在线免费观看| 国产一区二区三区观看| 欧美zozo另类异族| 久久福利资源站| 日韩视频一区二区三区在线播放| 午夜不卡在线视频| 欧美日韩亚洲不卡| 亚洲成人激情av| 欧美日韩一级片在线观看| 亚洲综合色噜噜狠狠| 色狠狠桃花综合| 亚洲一区视频在线观看视频| 91成人在线精品| 亚洲国产一区视频| 精品视频资源站| 日本人妖一区二区| 精品三级av在线| 国产成人综合网站| 国产精品午夜在线| 91麻豆免费看片| 一区二区激情视频| 欧美色涩在线第一页| 日韩经典中文字幕一区| 欧美一区午夜视频在线观看| 久久精品国产免费看久久精品| 精品日韩在线观看| 国产精品18久久久久久vr| 国产精品久久久久久久久搜平片| 成人动漫视频在线| 一区二区三区日本| 4438x亚洲最大成人网| 日韩国产一区二| 精品国产三级电影在线观看| 福利一区福利二区| 亚洲美女免费视频| 91精品国产手机| 国产乱理伦片在线观看夜一区| 国产精品网站导航| 在线观看精品一区| 美国十次综合导航| 国产精品免费视频一区| 色呦呦网站一区| 免费看黄色91| 国产欧美日韩亚州综合| 色哟哟国产精品| 久久精品国产亚洲高清剧情介绍 | 国产在线精品一区在线观看麻豆| 国产欧美一区二区三区在线老狼| 色综合久久久网| 美女一区二区在线观看| 国产日韩欧美精品一区| 欧美性videosxxxxx| 美女免费视频一区| 亚洲欧美一区二区三区久本道91| 欧美浪妇xxxx高跟鞋交| 国产精品白丝jk白祙喷水网站 | 国产一区二区精品久久99| 中文字幕在线观看不卡| 4438x亚洲最大成人网| 成人手机在线视频| 丝袜亚洲另类欧美| 国产精品毛片久久久久久久 | 亚洲亚洲精品在线观看| 欧美精品一区二区三| 色婷婷av一区二区三区大白胸| 美女网站视频久久| 亚洲女爱视频在线| 精品噜噜噜噜久久久久久久久试看| 99视频超级精品| 久久精品噜噜噜成人av农村| 亚洲最新在线观看| 亚洲国产精品精华液2区45| 欧美剧情片在线观看| 成人app网站| 国模一区二区三区白浆| 亚洲高清免费视频| 中文字幕亚洲一区二区av在线| 日韩欧美一区二区久久婷婷| 在线观看日韩电影| 成人av资源在线| 激情图片小说一区| 天天亚洲美女在线视频| 亚洲乱码国产乱码精品精98午夜| 久久精品夜色噜噜亚洲aⅴ| 欧美一区欧美二区| 精品1区2区3区| av中文字幕在线不卡| 国产一区高清在线| 日韩av中文字幕一区二区三区| 亚洲精品成a人| 国产精品乱码一区二区三区软件 | 久久噜噜亚洲综合| 日韩精品一区二区三区四区视频| 欧美性大战xxxxx久久久| 91亚洲精品久久久蜜桃| 成人性生交大片免费看中文| 美女视频黄 久久| 人人狠狠综合久久亚洲| 亚洲第一福利视频在线| 一区二区三区资源| 亚洲精品综合在线| 亚洲视频一区在线观看| 国产精品狼人久久影院观看方式| 久久精品免费在线观看| 精品久久久久久无| 精品毛片乱码1区2区3区| 日韩欧美123| 日韩三级在线观看| 欧美一区二区三区思思人| 欧美日韩成人激情| 欧美美女一区二区在线观看|