| 2973 | } |
| 2974 | |
| 2975 | void push16Reg(int instruction, Reg* reg) { |
| 2976 | newInstruction(instruction, 0); |
| 2977 | U32 value = 0xDDDD1234; |
| 2978 | ESP -= 2; |
| 2979 | if (reg == &cpu->reg[4]) { |
| 2980 | value = reg->u16; |
| 2981 | } else { |
| 2982 | reg->u32 = value; |
| 2983 | } |
| 2984 | memory->writew(cpu->seg[SS].address + ESP, 0xAAAA); |
| 2985 | memory->writew(cpu->seg[SS].address + ESP - 2, 0xCCCC); |
| 2986 | memory->writew(cpu->seg[SS].address + ESP - 4, 0xBBBB); |
| 2987 | runTestCPU(); |
| 2988 | assertTrue(ESP == 4092); |
| 2989 | assertTrue(memory->readw(cpu->seg[SS].address + ESP) == (U16)value); |
| 2990 | assertTrue(memory->readw(cpu->seg[SS].address + ESP + 2) == 0xAAAA); |
| 2991 | assertTrue(memory->readw(cpu->seg[SS].address + ESP - 2) == 0xBBBB); |
| 2992 | } |
| 2993 | |
| 2994 | void Pushf(int instruction) { |
| 2995 | newInstruction(instruction, 0); |
no test coverage detected