Re: x86 assembly questions
[email protected] (Emmanuel Dreyfus)
| Newsgroups | gmane.os.netbsd.ports.i386 |
|---|---|
| Message-ID | <1oeyr6r.divpxi1k0ddhwM%[email protected]> |
Emmanuel Dreyfus <[email protected]> wrote: > Then %ecx should contains the size in sizeof(long). I understand it > should copy from 0x100000 to 0x100000 + (4 * 0x4ef400), which is > 0x14bd000, but when I break after rep movsl instruction, the code > at 0x40780b3 has been clobered. After digging a bit further, the code clobbering actually happens a bit more far away, in the range 0x40780e1 - 0x407816f. It occurs in the middle of rep mosvl, which mannaged to copy 0x100000 - 0x119eb4. By setting a watchpoint, on the modified code, I discovered it happens in an exception handler. I use OVMF on Qemu, and I was able to find the offending code source, it is in ErrorCodeAndVectorOnStack from efiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ExceptionHandlerAsm.S Hence the code clobbering is not caused by rep mosvl itself, but I still wonder why the exception. Any hint on what can happen here? -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz [email protected]