Exemplo n.º 1
0
void test_membase_reg_uses_source_defines_target(void)
{
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_ADD_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_AND_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_CMP_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_DIV_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_MOV_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_MUL_MEMBASE_EAX, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_OR_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_SUB_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_SBB_MEMBASE_REG, &r0, 0, &r1));
	assert_uses_r0_defines_r1(membase_reg_insn(INSN_XOR_MEMBASE_REG, &r0, 0, &r1));
}
Exemplo n.º 2
0
void test_emit_mov_disp_reg(void)
{
	assert_emit_insn_3(0x8b, 0x45, 0x08, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_EBP, 0x08, &VAR_EAX));
	assert_emit_insn_3(0x8b, 0x45, 0x0c, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_EBP, 0x0c, &VAR_EAX));

	assert_emit_insn_3(0x8b, 0x5D, 0x08, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_EBP, 0x08, &VAR_EBX));
	assert_emit_insn_3(0x8b, 0x4D, 0x08, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_EBP, 0x08, &VAR_ECX));
	assert_emit_insn_3(0x8b, 0x55, 0x08, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_EBP, 0x08, &VAR_EDX));
	assert_emit_insn_3(0x8b, 0x04, 0x24, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_ESP, 0, &VAR_EAX));

	assert_emit_insn_6(0x8b, 0x80, 0x50, 0x02, 0x00, 0x00, membase_reg_insn(INSN_MOV_MEMBASE_REG, &VAR_EAX, 0x250, &VAR_EAX));
}
Exemplo n.º 3
0
void test_emit_cmp_membase_reg(void)
{
	assert_emit_insn_3(0x3b, 0x45, 0x08, membase_reg_insn(INSN_CMP_MEMBASE_REG, &VAR_EBP, 0x08, &VAR_EAX));
}
Exemplo n.º 4
0
void test_emit_xor_membase_reg(void)
{
	assert_emit_insn_3(0x33, 0x45, 0x0c, membase_reg_insn(INSN_XOR_MEMBASE_REG, &VAR_EBP, 0x0c, &VAR_EAX));
	assert_emit_insn_6(0x33, 0x9d, 0xef, 0xbe, 0xad, 0xde, membase_reg_insn(INSN_XOR_MEMBASE_REG, &VAR_EBP, 0xdeadbeef, &VAR_EBX));
}
Exemplo n.º 5
0
void test_emit_div_membase_reg(void)
{
	assert_emit_insn_3(0xf7, 0x7d, 0x0c, membase_reg_insn(INSN_DIV_MEMBASE_REG, &VAR_EBP, 0x0c, &VAR_EAX));
	assert_emit_insn_6(0xf7, 0xbd, 0xef, 0xbe, 0xad, 0xde, membase_reg_insn(INSN_DIV_MEMBASE_REG, &VAR_EBP, 0xdeadbeef, &VAR_EAX));
}
Exemplo n.º 6
0
void test_emit_mul_membase_reg(void)
{
	assert_emit_insn_3(0xf7, 0x65, 0x0c, membase_reg_insn(INSN_MUL_MEMBASE_EAX, &VAR_EBP, 0x0c, &VAR_EAX));
	assert_emit_insn_6(0xf7, 0xa5, 0xef, 0xbe, 0xad, 0xde, membase_reg_insn(INSN_MUL_MEMBASE_EAX, &VAR_EBP, 0xdeadbeef, &VAR_EAX));
}
Exemplo n.º 7
0
void test_emit_sbb_membase_reg(void)
{
	assert_emit_insn_3(0x1b, 0x45, 0x04, membase_reg_insn(INSN_SBB_MEMBASE_REG, &VAR_EBP, 0x04, &VAR_EAX));
}
Exemplo n.º 8
0
void test_emit_add_disp_reg(void)
{
	assert_emit_insn_3(0x03, 0x45, 0x04, membase_reg_insn(INSN_ADD_MEMBASE_REG, &VAR_EBP, 0x04, &VAR_EAX));
}