On Apr 21, 5:07 pm, Brendan <spamt...@[EMAIL PROTECTED]
> wrote:
> Hi,
>
> On Apr 21, 4:24 pm, "stam...@[EMAIL PROTECTED]
" <spamt...@[EMAIL PROTECTED]
> wrote:
>
> > I disassembled the code at C000: and got this:
> > 0000c0000 55 push bp
> > 0000c0001 aa stosb
> > 0000c0002 58 pop ax
> > 0000c0003 e919a8 jmp 0xba81f
> > How come the vga bios jumps to code that starts at an address that is
> > smaller than C0000?
>
> Your disassembler isn't very good.
>
> In real mode IP is 16-bit and therefore the target address would wrap
> around to "0xC000:0xA81F", *without* effecting CS (which should be
> 0xC000).
>
> The "push bp" line tells me that the disassembler isn't operating in
> "32-bit mode", which means the disassembler is using 32-bit addressing
> with 16-bit instructions when it should be using 16-bit addressing
> with 16-bit instructions. Basically, your disassembler isn't very
> good....
>
> Cheers,
>
> Brendan
Yep.
You are right. I should have seen this myself.
Sorry about the stupid question :)
Thanks


|