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

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

?? readcpu.c

?? 十七種模擬器源代碼 非常有用的作課程設計不可缺少的
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "raine.h"#include "newmem.h"#include "readcpu.h"int nr_cpuop_funcs;#define CPU_EMU_SIZE 0struct mnemolookup lookuptab[] ={    { i_ILLG, "ILLEGAL" },    { i_OR, "OR" },    { i_CHK, "CHK" },    { i_CHK2, "CHK2" },    { i_AND, "AND" },    { i_EOR, "EOR" },    { i_ORSR, "ORSR" },    { i_ANDSR, "ANDSR" },    { i_EORSR, "EORSR" },    { i_SUB, "SUB" },    { i_SUBA, "SUBA" },    { i_SUBX, "SUBX" },    { i_SBCD, "SBCD" },    { i_ADD, "ADD" },    { i_ADDA, "ADDA" },    { i_ADDX, "ADDX" },    { i_ABCD, "ABCD" },    { i_NEG, "NEG" },    { i_NEGX, "NEGX" },    { i_NBCD, "NBCD" },    { i_CLR, "CLR" },    { i_NOT, "NOT" },    { i_TST, "TST" },    { i_BTST, "BTST" },    { i_BCHG, "BCHG" },    { i_BCLR, "BCLR" },    { i_BSET, "BSET" },    { i_CMP, "CMP" },    { i_CMPM, "CMPM" },    { i_CMPA, "CMPA" },    { i_MVPRM, "MVPRM" },    { i_MVPMR, "MVPMR" },    { i_MOVE, "MOVE" },    { i_MOVEA, "MOVEA" },    { i_MVSR2, "MVSR2" },    { i_MV2SR, "MV2SR" },    { i_SWAP, "SWAP" },    { i_EXG, "EXG" },    { i_EXT, "EXT" },    { i_MVMEL, "MVMEL" },    { i_MVMLE, "MVMLE" },    { i_TRAP, "TRAP" },    { i_MVR2USP, "MVR2USP" },    { i_MVUSP2R, "MVUSP2R" },    { i_NOP, "NOP" },    { i_RESET, "RESET" },    { i_RTE, "RTE" },    { i_RTD, "RTD" },    { i_LINK, "LINK" },    { i_UNLK, "UNLK" },    { i_RTS, "RTS" },    { i_STOP, "STOP" },    { i_TRAPV, "TRAPV" },    { i_RTR, "RTR" },    { i_JSR, "JSR" },    { i_JMP, "JMP" },    { i_BSR, "BSR" },    { i_Bcc, "Bcc" },    { i_LEA, "LEA" },    { i_PEA, "PEA" },    { i_DBcc, "DBcc" },    { i_Scc, "Scc" },    { i_DIVU, "DIVU" },    { i_DIVS, "DIVS" },    { i_MULU, "MULU" },    { i_MULS, "MULS" },    { i_ASR, "ASR" },    { i_ASL, "ASL" },    { i_LSR, "LSR" },    { i_LSL, "LSL" },    { i_ROL, "ROL" },    { i_ROR, "ROR" },    { i_ROXL, "ROXL" },    { i_ROXR, "ROXR" },    { i_ASRW, "ASRW" },    { i_ASLW, "ASLW" },    { i_LSRW, "LSRW" },    { i_LSLW, "LSLW" },    { i_ROLW, "ROLW" },    { i_RORW, "RORW" },    { i_ROXLW, "ROXLW" },    { i_ROXRW, "ROXRW" },	    { i_MOVE2C, "MOVE2C" },    { i_MOVEC2, "MOVEC2" },    { i_CAS, "CAS" },    { i_CAS2, "CAS2" },    { i_MULL, "MULL" },    { i_DIVL, "DIVL" },    { i_BFTST, "BFTST" },    { i_BFEXTU, "BFEXTU" },    { i_BFCHG, "BFCHG" },    { i_BFEXTS, "BFEXTS" },    { i_BFCLR, "BFCLR" },    { i_BFFFO, "BFFFO" },    { i_BFSET, "BFSET" },    { i_BFINS, "BFINS" },    { i_PACK, "PACK" },    { i_UNPK, "UNPK" },    { i_TAS, "TAS" },    { i_BKPT, "BKPT" },    { i_CALLM, "CALLM" },    { i_RTM, "RTM" },    { i_TRAPcc, "TRAPcc" },    { i_MOVES, "MOVES" },    { i_FPP, "FPP" },    { i_FDBcc, "FDBcc" },    { i_FScc, "FScc" },    { i_FTRAPcc, "FTRAPcc" },    { i_FBcc, "FBcc" },    { i_FBcc, "FBcc" },    { i_FSAVE, "FSAVE" },    { i_FRESTORE, "FRESTORE" },    { i_MMUOP, "MMUOP" },    { i_ILLG, "" },};struct instr *table68k;static int u020_strncmp(const char *a, const char *b, int len){	int i;	for(i=0;i<len;i++){		if(a[i] != b[i])			return 1;	}	return 0;}static void u020_abort(void){}static int u020_isspace(char a){	if((a == 0x20) || (a == 0x0D) || (a == 0x0A) || (a == 0x09))		return 1;	else		return 0;}static DEF_INLINE amodes mode_from_str (const char *str){    if (! u020_strncmp (str, "Dreg", 4)) return Dreg;    if (! u020_strncmp (str, "Areg", 4)) return Areg;    if (! u020_strncmp (str, "Aind", 4)) return Aind;    if (! u020_strncmp (str, "Apdi", 4)) return Apdi;    if (! u020_strncmp (str, "Aipi", 4)) return Aipi;    if (! u020_strncmp (str, "Ad16", 4)) return Ad16;    if (! u020_strncmp (str, "Ad8r", 4)) return Ad8r;    if (! u020_strncmp (str, "absw", 4)) return absw;    if (! u020_strncmp (str, "absl", 4)) return absl;    if (! u020_strncmp (str, "PC16", 4)) return PC16;    if (! u020_strncmp (str, "PC8r", 4)) return PC8r;    if (! u020_strncmp (str, "Immd", 4)) return imm;    u020_abort ();    return(0);}static DEF_INLINE amodes mode_from_mr (int mode, int reg){    switch (mode) {	case 0: return Dreg;	case 1: return Areg;	case 2: return Aind;	case 3: return Aipi;	case 4: return Apdi;	case 5: return Ad16;	case 6: return Ad8r;	case 7:		switch (reg) {		case 0: return absw;		case 1: return absl;		case 2: return PC16;		case 3: return PC8r;		case 4: return imm;		case 5:		case 6:		case 7: return am_illg;		}    }    u020_abort ();    return(0);}static void build_insn (int insn){    int find = -1;    int variants;    struct instr_def id;    const char *opcstr;    int i;	    int flaglive = 0, flagdead = 0;	    id = defs68k[insn];	    for (i = 0; i < 5; i++) {		switch (id.flaginfo[i].flagset){		case fa_unset: break;		case fa_isjmp: break;		case fa_zero: flagdead |= 1 << i; break;		case fa_one: flagdead |= 1 << i; break;		case fa_dontcare: flagdead |= 1 << i; break;		case fa_unknown: flagdead = -1; goto out1;		case fa_set: flagdead |= 1 << i; break;		}    }	out1:    for (i = 0; i < 5; i++) {		switch (id.flaginfo[i].flaguse) {		case fu_unused: break;		case fu_isjmp: flaglive |= 1 << i; break;		case fu_maybecc: flaglive |= 1 << i; break;		case fu_unknown: flaglive = -1; goto out2;		case fu_used: flaglive |= 1 << i; break;		}    }out2:	    opcstr = id.opcstr;    for (variants = 0; variants < (1 << id.n_variable); variants++) {		int bitcnt[lastbit];		int bitval[lastbit];		int bitpos[lastbit];		int i;		UINT16 opc = id.bits;		UINT16 msk, vmsk;		int pos = 0;		int mnp = 0;		int bitno = 0;		char mnemonic[10];				wordsizes sz = sz_long;		int srcgather = 0, dstgather = 0;		int usesrc = 0, usedst = 0;		int srctype = 0;		int srcpos = -1, dstpos = -1;				amodes srcmode = am_unknown, destmode = am_unknown;		int srcreg = -1, destreg = -1;				for (i = 0; i < lastbit; i++)			bitcnt[i] = bitval[i] = 0;				vmsk = 1 << id.n_variable;				for (i = 0, msk = 0x8000; i < 16; i++, msk >>= 1) {			if (!(msk & id.mask)) {				int currbit = id.bitpos[bitno++];				int bit_set;				vmsk >>= 1;				bit_set = variants & vmsk ? 1 : 0;				if (bit_set)					opc |= msk;				bitpos[currbit] = 15 - i;				bitcnt[currbit]++;				bitval[currbit] <<= 1;				bitval[currbit] |= bit_set;			}		}				if (bitval[bitj] == 0) bitval[bitj] = 8;		/* first check whether this one does not match after all */		if (bitval[bitz] == 3 || bitval[bitC] == 1)			continue;		if (bitcnt[bitI] && (bitval[bitI] == 0x00 || bitval[bitI] == 0xff))			continue;				/* bitI and bitC get copied to biti and bitc */		if (bitcnt[bitI]) {			bitval[biti] = bitval[bitI]; bitpos[biti] = bitpos[bitI];		}		if (bitcnt[bitC])			bitval[bitc] = bitval[bitC];				pos = 0;		while (opcstr[pos] && !u020_isspace(opcstr[pos])) {			if (opcstr[pos] == '.') {				pos++;				switch (opcstr[pos]) {									case 'B': sz = sz_byte; break;				case 'W': sz = sz_word; break;				case 'L': sz = sz_long; break;				case 'z':					switch (bitval[bitz]) {					case 0: sz = sz_byte; break;					case 1: sz = sz_word; break;					case 2: sz = sz_long; break;					default: u020_abort();					}					break;					default: u020_abort();				}			} else {				mnemonic[mnp] = opcstr[pos];				if (mnemonic[mnp] == 'f') {					find = -1;					switch (bitval[bitf]) {					case 0: mnemonic[mnp] = 'R'; break;					case 1: mnemonic[mnp] = 'L'; break;					default: u020_abort();					}				}				mnp++;			}			pos++;		}		mnemonic[mnp] = 0;				/* now, we have read the mnemonic and the size */		while (opcstr[pos] && u020_isspace(opcstr[pos]))			pos++;				/* A goto a day keeps the D******a away. */		if (opcstr[pos] == 0)			goto endofline;				/* parse the source address */		usesrc = 1;		switch (opcstr[pos++]) {		case 'D':			srcmode = Dreg;			switch (opcstr[pos++]) {			case 'r': srcreg = bitval[bitr]; srcgather = 1; srcpos = bitpos[bitr]; break;			case 'R': srcreg = bitval[bitR]; srcgather = 1; srcpos = bitpos[bitR]; break;			default: u020_abort();			}						break;			case 'A':				srcmode = Areg;				switch (opcstr[pos++]) {				case 'r': srcreg = bitval[bitr]; srcgather = 1; srcpos = bitpos[bitr]; break;				case 'R': srcreg = bitval[bitR]; srcgather = 1; srcpos = bitpos[bitR]; break;				default: u020_abort();				}				switch (opcstr[pos]) {				case 'p': srcmode = Apdi; pos++; break;				case 'P': srcmode = Aipi; pos++; break;				}				break;				case '#':					switch (opcstr[pos++]) {					case 'z': srcmode = imm; break;					case '0': srcmode = imm0; break;					case '1': srcmode = imm1; break;					case '2': srcmode = imm2; break;					case 'i': srcmode = immi; srcreg = (INT32)(INT8)bitval[biti];						if (CPU_EMU_SIZE < 4) {							/* Used for branch instructions */							srctype = 1;							srcgather = 1;							srcpos = bitpos[biti];						}						break;					case 'j': srcmode = immi; srcreg = bitval[bitj];						if (CPU_EMU_SIZE < 3) {							/* 1..8 for ADDQ/SUBQ and rotshi insns */							srcgather = 1;							srctype = 3;							srcpos = bitpos[bitj];						}						break;					case 'J': srcmode = immi; srcreg = bitval[bitJ];						if (CPU_EMU_SIZE < 5) {							/* 0..15 */							srcgather = 1;							srctype = 2;							srcpos = bitpos[bitJ];						}						break;					case 'k': srcmode = immi; srcreg = bitval[bitk];						if (CPU_EMU_SIZE < 3) {							srcgather = 1;							srctype = 4;							srcpos = bitpos[bitk];						}						break;					case 'K': srcmode = immi; srcreg = bitval[bitK];						if (CPU_EMU_SIZE < 5) {							/* 0..15 */							srcgather = 1;							srctype = 5;							srcpos = bitpos[bitK];						}						break;					default: u020_abort();					}					break;					case 'd':						srcreg = bitval[bitD];						srcmode = mode_from_mr(bitval[bitd],bitval[bitD]);						if (srcmode == am_illg)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲四区在线观看| 欧美大白屁股肥臀xxxxxx| 狠狠色狠狠色综合| 蜜臀av性久久久久av蜜臀妖精 | 91精品国产综合久久精品麻豆| 色呦呦网站一区| 色综合天天综合网天天看片| 91麻豆高清视频| 91美女精品福利| 在线观看不卡视频| 69堂国产成人免费视频| 精品成人一区二区三区| 亚洲国产精品高清| 亚洲黄色免费电影| 日日骚欧美日韩| 国产在线一区二区| 99久久免费国产| 欧美中文字幕一二三区视频| 91精品国产欧美一区二区18 | 国产在线精品一区二区三区不卡| 国产一区二区三区四区五区美女| 国产a久久麻豆| 欧美亚洲国产怡红院影院| 欧美一级专区免费大片| 中文字幕免费观看一区| 亚洲国产精品麻豆| 国产精品影视网| 在线中文字幕不卡| 久久综合五月天婷婷伊人| 亚洲欧洲99久久| 免费在线观看精品| 成人午夜又粗又硬又大| 久久一日本道色综合| 日韩一区日韩二区| 蜜桃91丨九色丨蝌蚪91桃色| 成人美女视频在线观看18| 欧美美女视频在线观看| 国产三级三级三级精品8ⅰ区| 亚洲一区二区三区四区在线免费观看| 久久―日本道色综合久久| 亚洲精品午夜久久久| 激情亚洲综合在线| 欧美日韩一区二区三区高清| 欧美国产精品劲爆| 麻豆成人久久精品二区三区红| 91香蕉视频污| 久久综合丝袜日本网| 日韩国产欧美在线播放| 91美女在线看| 国产拍揄自揄精品视频麻豆| 视频一区国产视频| 色综合久久综合中文综合网| 国产欧美一区二区在线| 蜜桃久久久久久| 欧美日韩色一区| 亚洲女厕所小便bbb| 国产91精品入口| 欧美成人性福生活免费看| 午夜欧美电影在线观看| 99re66热这里只有精品3直播 | 91国产免费看| 国产精品久久看| 国产91富婆露脸刺激对白| 日韩女优电影在线观看| 首页亚洲欧美制服丝腿| 欧美亚州韩日在线看免费版国语版| 国产精品网站在线观看| 国产在线不卡视频| 久久蜜桃av一区二区天堂| 毛片一区二区三区| 日韩欧美国产不卡| 美国三级日本三级久久99| 日韩一区二区电影在线| 青青草成人在线观看| 91精品欧美一区二区三区综合在 | 欧美一区日韩一区| 婷婷久久综合九色国产成人| 欧美日韩精品三区| 日本sm残虐另类| 日韩欧美一区在线| 国产一区在线不卡| 国产日产欧美精品一区二区三区| 国产传媒日韩欧美成人| 国产精品免费看片| 不卡大黄网站免费看| 亚洲九九爱视频| 欧美精品九九99久久| 日韩成人av影视| 亚洲精品在线免费播放| 成人综合激情网| 日韩专区欧美专区| 欧美大片日本大片免费观看| 国产精品一区三区| 亚洲欧美一区二区久久| 欧美日韩一区久久| 精品一区二区三区的国产在线播放| ww亚洲ww在线观看国产| 99精品视频在线免费观看| 午夜久久久久久| 久久久精品黄色| 在线视频欧美精品| 国内精品伊人久久久久av影院| 国产精品乱人伦| 欧美理论在线播放| 国产成人精品免费网站| 亚洲福利国产精品| 久久久久国色av免费看影院| 色婷婷av久久久久久久| 精品一区二区三区在线播放| 亚洲美女视频在线观看| 欧美大片免费久久精品三p | 日韩高清中文字幕一区| 久久精品亚洲乱码伦伦中文 | 亚洲乱码中文字幕| 日韩欧美综合在线| 91视频在线看| 国产乱对白刺激视频不卡| 夜色激情一区二区| 精品免费日韩av| 欧美三级欧美一级| 国产成人在线色| 天堂久久一区二区三区| 最新中文字幕一区二区三区 | 波波电影院一区二区三区| 日本成人中文字幕在线视频| 国产精品乱码一区二三区小蝌蚪| 日韩午夜激情av| 一本久久a久久免费精品不卡| 国产老妇另类xxxxx| 天堂av在线一区| 一区二区三区在线免费| 国产精品三级av| 久久久久久97三级| 日韩精品中午字幕| 制服丝袜日韩国产| 欧美伊人久久大香线蕉综合69| 成人免费av资源| 国产精品一区二区在线看| 看电视剧不卡顿的网站| 日韩不卡在线观看日韩不卡视频| 亚洲精选免费视频| 最新热久久免费视频| 国产精品丝袜一区| 国产欧美日韩精品在线| 国产性天天综合网| 久久综合网色—综合色88| 精品福利在线导航| 精品国产一区二区在线观看| 日韩一级片网站| 日韩精品一区二区三区视频播放| 欧美一区二区三区免费在线看| 欧美精品在线观看一区二区| 在线看国产日韩| 欧美图区在线视频| 精品视频999| 在线不卡中文字幕播放| 久久久99久久| 久久精品这里都是精品| 久久久99精品免费观看不卡| 欧美国产精品一区二区| 国产精品久久久久婷婷| 亚洲欧美国产毛片在线| 一区二区三区不卡视频在线观看| 亚洲一区二区三区视频在线播放| 亚洲午夜国产一区99re久久| 日韩制服丝袜av| 极品少妇xxxx偷拍精品少妇| 国产成人啪午夜精品网站男同| 懂色一区二区三区免费观看| 色香蕉成人二区免费| 欧美影院一区二区| 日韩美女一区二区三区四区| 国产午夜精品一区二区三区视频| 国产精品久久久久久久久果冻传媒 | 欧美电视剧在线观看完整版| 久久久久久免费网| 亚洲色图色小说| 蜜臀av亚洲一区中文字幕| 国产成人av自拍| 一本高清dvd不卡在线观看| 在线成人av影院| 国产精品私人自拍| 午夜不卡在线视频| 国产精品一区二区三区四区| 色狠狠色噜噜噜综合网| 欧美一区二区在线看| 国产精品成人在线观看| 爽好久久久欧美精品| 成人av免费网站| 91麻豆精品国产91久久久使用方法 | 97超碰欧美中文字幕| 欧美一区二区精品久久911| 国产精品色婷婷久久58| 青青草国产精品亚洲专区无| 99久久综合国产精品| 欧美mv日韩mv亚洲| 一区二区三区电影在线播| 国产剧情一区二区三区| 欧美日本视频在线| 亚洲色图丝袜美腿|