static bool isFlag (RRegItem *reg) { const char *type = r_reg_get_type (reg->type); if (!strcmp (type, "flg")) return true; return false; }
int main() { int i; int foo[128]; const char *type; struct r_reg_t *reg; for (i=0;i<128;i++) foo[i] = i; reg = r_reg_new (); r_reg_set_profile (reg, "./test.regs"); r_reg_read_regs (reg, (const ut8 *)foo, sizeof(foo)); { ut64 a; RRegItem *item; item = r_reg_get (reg, "eflags", R_REG_TYPE_GPR); r_reg_set_value (reg, item, 0x00000346); //0xffffffffffff); a = r_reg_get_value (reg, item); eprintf ("A32 = 0x%x\n", (int)a); if ((int)a != -1) { eprintf ("1 FAIL\n"); } print_eflags_bits (reg); item = r_reg_get (reg, "zf", R_REG_TYPE_GPR); a = r_reg_get_value (reg, item); eprintf ("A = %d\n", (int)a); if (a != 1) { eprintf ("2 FAIL\n"); } item = r_reg_get (reg, "zf", R_REG_TYPE_GPR); r_reg_set_value (reg, item, 1); a = r_reg_get_value (reg, item); eprintf ("A = %d\n", (int)a); if (a != 1) { eprintf ("3 FAIL\n"); } r_reg_set_value (reg, item, 0); a = r_reg_get_value (reg, item); eprintf ("A = %d\n", (int)a); if (a != 0) { eprintf ("4 FAIL\n"); } } show_regs (reg, 1); //32); exit (0); show_regs (reg, 32); /* --- */ r_reg_set_profile(reg, "../p/x86-linux.regs"); printf ("Program counter is named: %s\n", r_reg_get_name (reg, R_REG_NAME_PC)); show_regs (reg, 32); r_reg_set_value(reg, r_reg_get(reg, "eax", -1), 0x414141); r_reg_set_value(reg, r_reg_get(reg, "ecx", -1), 666); show_regs(reg, 32); r_reg_set_value(reg, r_reg_get(reg, "al", -1), 0x22); show_regs(reg, 33); r_reg_set_value (reg, r_reg_get (reg, "zero", -1), 0); show_regs (reg, 1); r_reg_set_value (reg, r_reg_get (reg, "zero", -1), 1); show_regs (reg, 1); for (i=0; (type=r_reg_get_type (i));i++) printf (" - %s\n", type); r_reg_arena_push (reg); r_reg_arena_pop (reg); r_reg_arena_push (reg); r_reg_arena_push (reg); r_reg_arena_push (reg); r_reg_arena_pop (reg); r_reg_arena_pop (reg); r_reg_arena_push (reg); r_reg_arena_pop (reg); r_reg_arena_pop (reg); /* r_reg_arena_pop(reg); r_reg_arena_pop(reg); r_reg_arena_pop(reg); r_reg_arena_pop(reg); */ return 0; }