[Русский] [English]
LDE32 is a library which may be used to determine length of any x86 instructiion, i.e. to provide partial disassembling.
LDE32 has only two subroutines.
1. void pascal disasm_init(void* tableptr);
This subroutine used to build internal data table of 2048 byte length.
2. int pascal disasm_main(void* opcodeptr, void* tableptr);
This subroutine used to disassemble one instruction. It returns length of instruction in bytes, or -1 if an error occured.
Subroutines preserves all registers; code is offset-independent; no data used except 2k at *tableptr.
To include LDE32 into your source you should add the following line:
include lde32bin.inc
example |
---|
push offset tbl ; build disasm flag tables call disasm_init mov ebx, 401000h cycle: push ebx ; disasm offset push offset tbl ; internal disasm table call disasm_main add ebx, eax cmp eax, -1 ; error? jne cycle include lde32bin.inc ; LDE32 code tbl db 2048 dup (?) ; internal LDE32 data |
programmed in 1999 by Z0MBiE, http://z0mbie.host.sk