int run(cpu *pcpu) { char byte; pcpu->fl = CPU_CLEAN; if ((byte = get_byte(pcpu->ip)) < 0) { pcpu->fl = CPU_ERROR; pcpu->ip++; return -1; } //printf("Cel id-> %d, byte : 0x%x, at IP: %s\n",pcpu->pcel->id ,byte, decodificar(get_byte(pcpu->ip))); //show_regs(pcpu,0); switch(byte) { case 0X00 : nop0(pcpu); break; case 0X01 : nop1(pcpu); break; case 0X02 : pushax(pcpu); break; case 0X03 : pushbx(pcpu); break; case 0X04 : pushcx(pcpu); break; case 0X05 : pushdx(pcpu); break; case 0X06 : popax(pcpu); break; case 0X07 : popbx(pcpu); break; case 0X08 : popcx(pcpu); break; case 0X09 : popdx(pcpu); break; case 0X0a : movcd(pcpu); break; case 0X0b : movab(pcpu); break; case 0X0c : movii(pcpu); break; case 0X0d : sub_ab(pcpu); break; case 0X0e : sub_ac(pcpu); break; case 0X0f : inc_a(pcpu); break; case 0X10 : inc_b(pcpu); break; case 0X11 : dec_c(pcpu); break; case 0X12 : inc_c(pcpu); break; case 0X13 : zero(pcpu); break; case 0X14 : not0(pcpu); break; case 0X15 : shl(pcpu); break; case 0X16 : ifz(pcpu); break; case 0X17 : jmp(pcpu); break; case 0X18 : jmpb(pcpu); break; case 0X19 : call(pcpu); break; case 0X1a : ret(pcpu); break; case 0X1b : adr(pcpu); break; case 0X1c : adrb(pcpu); break; case 0x1d : adrf(pcpu); break; case 0X1e : mal(pcpu); break; case 0X1f : divide(pcpu); break; //default:printf("CPU: Instruccion No Encontrada!\n");break; } return 0; }
void TestIfAssertDisabled(TheType IF_MOD_ASSERT_REPORTS(type)) { int a=1; EXPECT_NO_FAILURE; MOD_ASSERT_G(type, ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); MOD_ASSERT_PG(a, type, ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); MOD_ASSERT_GO(type, ++a, "++a", ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); MOD_ASSERT_PGO(a, type, ++a, "++a", ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); // the condition should still be evaluated, // so a should increase MOD_VERIFY_G(type, ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 2)); MOD_VERIFY_PG(a, type, ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 3)); MOD_VERIFY_GO(type, ++a, "++a", ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 4)); MOD_VERIFY_PGO(a, type, ++a, "++a", ++a==0); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 5)); Inc inc_a(a); int rv = 0; a=0; rv = MOD_VERIFY_VG(type, a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VPG((a), type, a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VGO(type, inc_a, "++a", a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VPGO((a), type, inc_a, "++a", a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VNPG(type, a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VSPG((a), type, a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VNPGO(type, inc_a, "++a", a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VSPGO((a), type, inc_a, "++a", a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv = MOD_VERIFY_VG(type, rbvMORE(a++,1)); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); META_ASSERT(rbEQUAL(rv, 0)); }
void TestIfCheckDisabled(TheType IF_MOD_CHECK_REPORTS(type)) { int a=1; // the condition should still be evaluated, // so a should increase // the condition always fails, so it's increased twice MOD_CHECK_G(type, ++a==0, ++a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 3)); MOD_CHECK_PG(a, type, ++a==0, ++a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 5)); MOD_CHECK_GO(type, ++a, "++a", ++a==0, ++a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 7)); MOD_CHECK_PGO(a, type, ++a, "++a", ++a==0, ++a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 9)); Inc inc_a(a); int rv=0; a=0; rv=MOD_CHECK_VG(type, a++, inc_a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 2)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv=MOD_CHECK_VPG((a), type, a++, inc_a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 2)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv=MOD_CHECK_VGO(type, inc_a, "++a", a++, inc_a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 2)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv=MOD_CHECK_VPGO((a), type, inc_a, "++a", a++, inc_a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 2)); META_ASSERT(rbEQUAL(rv, 0)); a=0; rv=MOD_CHECK_VG(type, rbvMORE(a++, 1), inc_a); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 2)); META_ASSERT(rbEQUAL(rv, 0)); bool b; a=0; b=MOD_CHECK_BG(type, a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); a=0; b=MOD_CHECK_BPG((a), type, a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); a=0; b=MOD_CHECK_BGO(type, inc_a, "++a", a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); a=0; b=MOD_CHECK_BPGO((a), type, inc_a, "++a", a++); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); a=0; b=MOD_CHECK_BG(type, rbvMORE(a++, 0)); META_ASSERT(!CheckLoggerCalled()); META_ASSERT(rbEQUAL(a, 1)); }