Exemple #1
0
void dumpInstruction(uint8 *mem){
	switch(mem[0]){
		default: printf("[ UNKNOWN0x%X ]", mem[0]); break;
		case NUL: printf("[ NUL ]", mem[0]); break;
		case GET8: printf("[ GET8 %s 0x%04X ]", dumpRegister(mem[1]), (mem[2] << 8) + mem[3]); break;
		case GET16: printf("[ GET16 %s 0x%04X ]", dumpRegister(mem[1]), (mem[2] << 8) + mem[3]); break;
		case GET32: printf("[ GET32 %s 0x%04X ]", dumpRegister(mem[1]), (mem[2] << 8) + mem[3]); break;
		case IGET8: printf("[ IGET8 %s 0x%04X ]", dumpRegister(mem[1]), (mem[2] << 8) + mem[3]); break;
		case IGET16: printf("[ IGET16 %s 0x%04X ]", dumpRegister(mem[1]), (mem[2] << 8) + mem[3]); break;
		case IGET32: printf("[ IGET32 %s 0x%04X ]", dumpRegister(mem[1]), (mem[2] << 8) + mem[3]); break;
		case SAVE8: printf("[ SAVE8 0x%04X %s ]", (mem[1] << 8) + mem[2], dumpRegister(mem[3])); break;
		case SAVE16: printf("[ SAVE16 0x%04X %s ]", (mem[1] << 8) + mem[2], dumpRegister(mem[3])); break;
		case SAVE32: printf("[ SAVE32 0x%04X %s ]", (mem[1] << 8) + mem[2], dumpRegister(mem[3])); break;
		case ISAVE8: printf("[ ISAVE8 0x%04X %s ]", (mem[1] << 8) + mem[2], dumpRegister(mem[3])); break;
		case ISAVE16: printf("[ ISAVE16 0x%04X %s ]", (mem[1] << 8) + mem[2], dumpRegister(mem[3])); break;
		case ISAVE32: printf("[ ISAVE32 0x%04X %s ]", (mem[1] << 8) + mem[2], dumpRegister(mem[3])); break;

		case MOV: printf("[ MOV %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;

		case NEG: printf("[ NEG %s ]", dumpRegister(mem[1])); break;
		case SHL: printf("[ SHL %s ]", dumpRegister(mem[1])); break;
		case SHR: printf("[ SHR %s ]", dumpRegister(mem[1])); break;

		case ADD: printf("[ ADD %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case SUB: printf("[ SUB %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case MUL: printf("[ MUL %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case DIV: printf("[ DIV %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case MOD: printf("[ MOD %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case AND: printf("[ AND %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case OR: printf("[ OR %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case XOR: printf("[ XOR %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;

		case OUT: printf("[ OUT 0x%02X %s ]", mem[1], dumpRegister(mem[2])); break;
		case IN: printf("[ IN %s 0x%02X ]", dumpRegister(mem[1]), mem[2]); break;

		case CMP: printf("[ CMP %s %s ]", dumpRegister(mem[1]), dumpRegister(mem[2])); break;
		case JMP: printf("[ JMP 0x%04X ]", (mem[1] << 8) + mem[2]); break;
		case JE: printf("[ JE 0x%04X ]", (mem[1] << 8) + mem[2]); break;
		case JNE: printf("[ JNE 0x%04X ]", (mem[1] << 8) + mem[2]); break;
		case JG: printf("[ JL 0x%04X ]", (mem[1] << 8) + mem[2]); break;
		case JL: printf("[ JG 0x%04X ]", (mem[1] << 8) + mem[2]); break;

		case INT: printf("[ INT ]", (mem[1] << 8) + mem[2]); break;
	}
}
Exemple #2
0
void RDA5807M::dumpRegisters()
{
	for (uint8_t r = 0; r <= 0x0F; ++r)
		dumpRegister(r);
}