⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpuemu_03.c

📁 十七种模拟器源代码 非常有用的作课程设计不可缺少的
💻 C
📖 第 1 页 / 共 5 页
字号:
	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e5d8_0(UINT32 opcode) /* ROXLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg(regs, srcreg) += 2;{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e5e0_0(UINT32 opcode) /* ROXLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) - 2;{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg (regs, srcreg) = dataa;{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 7;}unsigned long op_e5e8_0(UINT32 opcode) /* ROXLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e5f0_0(UINT32 opcode) /* ROXLW */{	UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{	unsigned int dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}}return 9;}unsigned long op_e5f8_0(UINT32 opcode) /* ROXLW */{{{	unsigned int dataa = (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e5f9_0(UINT32 opcode) /* ROXLW */{{{	unsigned int dataa = get_ilong(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (GET_XFLG) val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	COPY_CARRY;	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(6);return 10;}unsigned long op_e6d0_0(UINT32 opcode) /* RORW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e6d8_0(UINT32 opcode) /* RORW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg(regs, srcreg) += 2;{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e6e0_0(UINT32 opcode) /* RORW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) - 2;{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg (regs, srcreg) = dataa;{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 7;}unsigned long op_e6e8_0(UINT32 opcode) /* RORW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e6f0_0(UINT32 opcode) /* RORW */{	UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{	unsigned int dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}}return 9;}unsigned long op_e6f8_0(UINT32 opcode) /* RORW */{{{	unsigned int dataa = (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e6f9_0(UINT32 opcode) /* RORW */{{{	unsigned int dataa = get_ilong(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 1;	val >>= 1;	if (carry) val |= 0x8000;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(6);return 10;}unsigned long op_e7d0_0(UINT32 opcode) /* ROLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e7d8_0(UINT32 opcode) /* ROLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg);{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg(regs, srcreg) += 2;{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 6;}unsigned long op_e7e0_0(UINT32 opcode) /* ROLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) - 2;{	INT16 data = cpu_readmem24_word(dataa);	m68k_areg (regs, srcreg) = dataa;{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(2);return 7;}unsigned long op_e7e8_0(UINT32 opcode) /* ROLW */{	UINT32 srcreg = (opcode & 7);{{	unsigned int dataa = m68k_areg(regs, srcreg) + (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e7f0_0(UINT32 opcode) /* ROLW */{	UINT32 srcreg = (opcode & 7);{{m68k_incpc(2);{	unsigned int dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}}return 9;}unsigned long op_e7f8_0(UINT32 opcode) /* ROLW */{{{	unsigned int dataa = (INT32)(INT16)get_iword(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(4);return 8;}unsigned long op_e7f9_0(UINT32 opcode) /* ROLW */{{{	unsigned int dataa = get_ilong(2);{	INT16 data = cpu_readmem24_word(dataa);{	UINT16 val = data;	UINT32 carry = val & 0x8000;	val <<= 1;	if (carry)  val |= 1;	CLEAR_CZNV;	SET_ZFLG (((INT16)(val)) == 0);	SET_NFLG (((INT16)(val)) < 0);SET_CFLG (carry >> 15);	cpu_writemem24_word(dataa,val);}}}}m68k_incpc(6);return 10;}unsigned long op_e8c0_0(UINT32 opcode) /* BFTST */{	UINT32 dstreg = opcode & 7;{{	INT16 extra = get_iword(2);{

⌨️ 快捷键说明

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