On 27-Oct-01 Matthew Emmerton wrote: > Hi all, > > This weekend I decided to do some assembly hacking on some object-only code > that I've lost the C source for. Since I haven't coded assembler for at > least 8 years, and I threw my x86 assembly manuals out when I moved 6 months > ago, there are a few things that are stumping me. > > In particular, am I interpreting these instructions correctly? > > 0x80839fb <uttstrbyt+43>: movzbl (%edx,%eax,1),%eax > > > Takes %eax + %edx, obtains the byte value in memory at that address, > zero-extends and places into %eax > > 0x80839ff <uttstrbyt+47>: movzwl 0xe90(%ebx,%eax,2),%edx > > Takes %eax + %ebx + 0xe90, obtains the word value in memory at that address, > zero-extends and places in %edx.
Almost. The '2' there is a multiplier on (I think) %eax, so it uses 'ebx + 2 * eax + 0xe90' for the memory address. Either that or 'eax + 2 * ebx + 0xe90'. Check the gas info page for the AT&T syntax to figure out exactly which. (Or use nasm's diassembler which turns out Intel format asm.) (ports/devel/nasm, ndisasm) -- John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message

