mirror of
https://github.com/cemu-project/idapython.git
synced 2025-01-13 02:19:14 +01:00
idp.i: Added assemble() function to idaapi. Thanks to Ero Carrera for the patch.
This commit is contained in:
parent
b961ced412
commit
f352f77edf
28
swig/idp.i
28
swig/idp.i
@ -279,4 +279,32 @@ int idaapi IDB_Callback(void *ud, int notification_code, va_list va)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Assemble an instruction (display a warning if an error is found)
|
||||||
|
// args:
|
||||||
|
// ea_t ea - linear address of instruction
|
||||||
|
// ea_t cs - cs of instruction
|
||||||
|
// ea_t ip - ip of instruction
|
||||||
|
// bool use32 - is 32bit segment?
|
||||||
|
// const char *line - line to assemble
|
||||||
|
// returns: 1: success, 0: failure
|
||||||
|
inline const int assemble(ea_t ea, ea_t cs, ea_t ip, bool use32, const char *line)
|
||||||
|
{
|
||||||
|
int instr_len, i;
|
||||||
|
char buf[256]; // FIXME: Shouldn't be longer than this... is there a MAX_INSTR_LENGTH anywhere?
|
||||||
|
|
||||||
|
if (ph.notify != NULL)
|
||||||
|
{
|
||||||
|
instr_len = ph.notify(ph.assemble, ea, cs, ip, use32, line, buf);
|
||||||
|
if (instr_len > 0)
|
||||||
|
{
|
||||||
|
for (i=0; i<instr_len; i++)
|
||||||
|
{
|
||||||
|
patch_byte(ea+i, buf[i]);
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
%}
|
%}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user