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

📄 simops.c

📁 gdb-6.0 linux 下的调试工具
💻 C
📖 第 1 页 / 共 5 页
字号:
  v = ((reg1 & 0x80000000) != (imm & 0x80000000)       && (reg1 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp dm, dn */void OP_A0 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, reg2, value;  reg1 = State.regs[REG_D0 + REG1 (insn)];  reg2 = State.regs[REG_D0 + REG0 (insn)];  value = reg2 - reg1;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 > reg2);  v = ((reg2 & 0x80000000) != (reg1 & 0x80000000)       && (reg2 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp dm, an */void OP_F1A0 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, reg2, value;  reg1 = State.regs[REG_D0 + REG1 (insn)];  reg2 = State.regs[REG_A0 + REG0 (insn)];  value = reg2 - reg1;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 > reg2);  v = ((reg2 & 0x80000000) != (reg1 & 0x80000000)       && (reg2 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp am, dn */void OP_F190 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, reg2, value;  reg1 = State.regs[REG_A0 + REG1 (insn)];  reg2 = State.regs[REG_D0 + REG0 (insn)];  value = reg2 - reg1;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 > reg2);  v = ((reg2 & 0x80000000) != (reg1 & 0x80000000)       && (reg2 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp imm8, an */void OP_B000 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, imm, value;  reg1 = State.regs[REG_A0 + REG0_8 (insn)];  imm = insn & 0xff;  value = reg1 - imm;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 < imm);  v = ((reg1 & 0x80000000) != (imm & 0x80000000)       && (reg1 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp am, an */void OP_B0 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, reg2, value;  reg1 = State.regs[REG_A0 + REG1 (insn)];  reg2 = State.regs[REG_A0 + REG0 (insn)];  value = reg2 - reg1;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 > reg2);  v = ((reg2 & 0x80000000) != (reg1 & 0x80000000)       && (reg2 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp imm16, dn */void OP_FAC80000 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, imm, value;  reg1 = State.regs[REG_D0 + REG0_16 (insn)];  imm = SEXT16 (insn & 0xffff);  value = reg1 - imm;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 < imm);  v = ((reg1 & 0x80000000) != (imm & 0x80000000)       && (reg1 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp imm32, dn */void OP_FCC80000 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, imm, value;  reg1 = State.regs[REG_D0 + REG0_16 (insn)];  imm = ((insn & 0xffff) << 16) + extension;  value = reg1 - imm;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 < imm);  v = ((reg1 & 0x80000000) != (imm & 0x80000000)       && (reg1 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp imm16, an */void OP_FAD80000 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, imm, value;  reg1 = State.regs[REG_A0 + REG0_16 (insn)];  imm = insn & 0xffff;  value = reg1 - imm;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 < imm);  v = ((reg1 & 0x80000000) != (imm & 0x80000000)       && (reg1 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* cmp imm32, an */void OP_FCD80000 (insn, extension)     unsigned long insn, extension;{  int z, c, n, v;  unsigned long reg1, imm, value;  reg1 = State.regs[REG_A0 + REG0_16 (insn)];  imm = ((insn & 0xffff) << 16) + extension;  value = reg1 - imm;  z = (value == 0);  n = (value & 0x80000000);  c = (reg1 < imm);  v = ((reg1 & 0x80000000) != (imm & 0x80000000)       && (reg1 & 0x80000000) != (value & 0x80000000));  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | ( n ? PSW_N : 0)	  | (c ? PSW_C : 0) | (v ? PSW_V : 0));}/* and dm, dn */void OP_F200 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0 (insn)] &= State.regs[REG_D0 + REG1 (insn)];  z = (State.regs[REG_D0 + REG0 (insn)] == 0);  n = (State.regs[REG_D0 + REG0 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* and imm8, dn */void OP_F8E000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_8 (insn)] &= (insn & 0xff);  z = (State.regs[REG_D0 + REG0_8 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_8 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* and imm16, dn */void OP_FAE00000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_16 (insn)] &= (insn & 0xffff);  z = (State.regs[REG_D0 + REG0_16 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_16 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* and imm32, dn */void OP_FCE00000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_16 (insn)]    &= ((insn & 0xffff) << 16) + extension;  z = (State.regs[REG_D0 + REG0_16 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_16 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* and imm16, psw */void OP_FAFC0000 (insn, extension)     unsigned long insn, extension;{  PSW &= (insn & 0xffff);}/* or dm, dn*/void OP_F210 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0 (insn)] |= State.regs[REG_D0 + REG1 (insn)];  z = (State.regs[REG_D0 + REG0 (insn)] == 0);  n = (State.regs[REG_D0 + REG0 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* or imm8, dn */void OP_F8E400 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_8 (insn)] |= insn & 0xff;  z = (State.regs[REG_D0 + REG0_8 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_8 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* or imm16, dn*/void OP_FAE40000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_16 (insn)] |= insn & 0xffff;  z = (State.regs[REG_D0 + REG0_16 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_16 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* or imm32, dn */void OP_FCE40000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_16 (insn)]    |= ((insn & 0xffff) << 16) + extension;  z = (State.regs[REG_D0 + REG0_16 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_16 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* or imm16,psw */void OP_FAFD0000 (insn, extension)     unsigned long insn, extension;{  PSW |= (insn & 0xffff);}/* xor dm, dn */void OP_F220 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0 (insn)] ^= State.regs[REG_D0 + REG1 (insn)];  z = (State.regs[REG_D0 + REG0 (insn)] == 0);  n = (State.regs[REG_D0 + REG0 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* xor imm16, dn */void OP_FAE80000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_16 (insn)] ^= insn & 0xffff;  z = (State.regs[REG_D0 + REG0_16 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_16 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* xor imm32, dn */void OP_FCE80000 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0_16 (insn)]    ^= ((insn & 0xffff) << 16) + extension;  z = (State.regs[REG_D0 + REG0_16 (insn)] == 0);  n = (State.regs[REG_D0 + REG0_16 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* not dn */void OP_F230 (insn, extension)     unsigned long insn, extension;{  int n, z;  State.regs[REG_D0 + REG0 (insn)] = ~State.regs[REG_D0 + REG0 (insn)];  z = (State.regs[REG_D0 + REG0 (insn)] == 0);  n = (State.regs[REG_D0 + REG0 (insn)] & 0x80000000) != 0;  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= ((z ? PSW_Z : 0) | (n ? PSW_N : 0));}/* btst imm8, dn */void OP_F8EC00 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z, n;  temp = State.regs[REG_D0 + REG0_8 (insn)];  temp &= (insn & 0xff);  n = (temp & 0x80000000) != 0;  z = (temp == 0);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0) | (n ? PSW_N : 0);}/* btst imm16, dn */void OP_FAEC0000 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z, n;  temp = State.regs[REG_D0 + REG0_16 (insn)];  temp &= (insn & 0xffff);  n = (temp & 0x80000000) != 0;  z = (temp == 0);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0) | (n ? PSW_N : 0);}/* btst imm32, dn */void OP_FCEC0000 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z, n;  temp = State.regs[REG_D0 + REG0_16 (insn)];  temp &= ((insn & 0xffff) << 16) + extension;  n = (temp & 0x80000000) != 0;  z = (temp == 0);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0) | (n ? PSW_N : 0);}/* btst imm8,(abs32) */void OP_FE020000 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int n, z;  temp = load_byte (((insn & 0xffff) << 16) | (extension >> 8));  temp &= (extension & 0xff);  n = (temp & 0x80000000) != 0;  z = (temp == 0);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0) | (n ? PSW_N : 0);}/* btst imm8,(d8,an) */void OP_FAF80000 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int n, z;  temp = load_byte ((State.regs[REG_A0 + REG0_16 (insn)]                     + SEXT8 ((insn & 0xff00) >> 8)));  temp &= (insn & 0xff);  n = (temp & 0x80000000) != 0;  z = (temp == 0);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0) | (n ? PSW_N : 0);}/* bset dm, (an) */void OP_F080 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z;  temp = load_byte (State.regs[REG_A0 + REG0 (insn)]);  z = (temp & State.regs[REG_D0 + REG1 (insn)]) == 0;  temp |= State.regs[REG_D0 + REG1 (insn)];  store_byte (State.regs[REG_A0 + REG0 (insn)], temp);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0);}/* bset imm8, (abs32) */void OP_FE000000 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z;  temp = load_byte (((insn & 0xffff) << 16 | (extension >> 8)));  z = (temp & (extension & 0xff)) == 0;  temp |= (extension & 0xff);  store_byte ((((insn & 0xffff) << 16) | (extension >> 8)), temp);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0);}/* bset imm8,(d8,an) */void OP_FAF00000 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z;  temp = load_byte ((State.regs[REG_A0 + REG0_16 (insn)]                     + SEXT8 ((insn & 0xff00) >> 8)));  z = (temp & (insn & 0xff)) == 0;  temp |= (insn & 0xff);  store_byte ((State.regs[REG_A0 + REG0_16 (insn)]	       + SEXT8 ((insn & 0xff00) >> 8)), temp);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0);}/* bclr dm, (an) */void OP_F090 (insn, extension)     unsigned long insn, extension;{  unsigned long temp;  int z;  temp = load_byte (State.regs[REG_A0 + REG0 (insn)]);  z = (temp & State.regs[REG_D0 + REG1 (insn)]) == 0;  temp = temp & ~State.regs[REG_D0 + REG1 (insn)];  store_byte (State.regs[REG_A0 + REG0 (insn)], temp);  PSW &= ~(PSW_Z | PSW_N | PSW_C | PSW_V);  PSW |= (z ? PSW_Z : 0);}

⌨️ 快捷键说明

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