Messages in this thread | | | Date | Wed, 23 Apr 2003 09:33:00 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | Re: Stored data missed in setup.S |
| |
On Wed, 23 Apr 2003, Andrew Kirilenko wrote:
> Hello! > > I feel myself stupid, when fighting against setup.S. Here is small piece of > code (/arch/i386/boot/setup.S) > > ---> > start_of_setup: # line 160 > # bla bla bla - some checking code > movb $1, %al > movb %al, (0x100) > .... > .... > pushw %ax > movb (0x100), %al
You put something from offset 0x100 into %al.
> cmpb $1, %al
Then you compared it against 1. This is where the comparaison occurred.
> popw %ax # pop don't change any flags - 386 asm reference
Then you put something else into %ax. Whatever it is, doesn't count.
> je bail820 # and it don't jump -- al != 1
Then you jumped based upon the comparison you made before you destroyed the contents of %al by poping %eax (%eax is (%ah << 8) | %al).
If you don't want to muck with registers, just do:
cmpb $1, (0x100) jz wherever
You don't need to put memory oprands into registers to compare.
> meme820: # line 300 > <--- > > Any ideas? I've spent two days, trying to understand what's going on > - no luck > at all... > > Best regards, > Andrew.
Cheers, Dick Johnson Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips). Why is the government concerned about the lunatic fringe? Think about it.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |