exec.c

来自「唯一公开源代码的GBA模拟器」· C语言 代码 · 共 72 行

C
72
字号
u32 arm_exec (void)
{
	switch (CONDITION_MASK) {
	
		case 0:
				if (ZFLAG) 
					return opcode_handles[OPCODE_MASK]();
				break;
		case 1:
				if (!ZFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 2:
				if (CFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 3:
				if (!CFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 4:
				if (NFLAG)				
					return opcode_handles[OPCODE_MASK]();
				break;
		case 5:
				if (!NFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 6:
				if (VFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 7:
				if (!VFLAG)				
					return opcode_handles[OPCODE_MASK]();
				break;
		case 8:
				if (CFLAG && !ZFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 9:
				if (!CFLAG || ZFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 10:
				if (NFLAG == VFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 11:
				if (NFLAG != VFLAG)
					return opcode_handles[OPCODE_MASK]();
				break;
		case 12:
				if (!ZFLAG && (NFLAG == VFLAG))
					return opcode_handles[OPCODE_MASK]();
				break;
		case 13:
				if (ZFLAG || (NFLAG != VFLAG))
					return opcode_handles[OPCODE_MASK]();
				break;
		default:
				return opcode_handles[OPCODE_MASK]();
	}
		
	advance_instruction_pipe();
	return 1;
}

u32 thumb_exec (void)
{
	return opcode_handles_t [OPCODE_MASK_T]();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?