Re: Hangs after "Loading" but before "Uncompressing"

From: Manfred Spraul (manfreds@colorfullife.com)
Date: Thu Jan 27 2000 - 13:46:57 EST


"Richard B. Johnson" wrote:
>
> Well! We went over this two years ago. The problem is that segment
> overrides are specifically excluded for the LODS, LODSB, LODSW, and
> LODSD instructions on the '486. (Page 16-203, Intel Rag called
> Intel 486 Microprocessor Family, Programmer's Reference Manual).

I assume you mean Chapter 26. LODS is described on page 204 in my
edition of that book.

> This comes about (shown on page E-23) because the sreg field
> is two bits on some instructions and 3 bits on others. Three
> bits allows FS and GS segments to be specified, two bits allows
> only the ES, CS, DS, and SS segments. The sreg field in the
> LODxx instruction does not exist! (page E-9).

Of course:

* "sreg2" and "sreg3" are _only_ used in instructions that reference a
segment register explicitely (push gs, etc)

* normal instructions use a prefix, ie an additional byte in front of
the actual instruction. If you check Chapter E, you'll notice that
neither "add", nor "mul", nor "xchg",... accept an "sreg{2,3}" field,
but all of them could be combined with segment prefixes. That's
described in Chapter 26.2 [page 26-3].

* Chapter 3.6.2 of the 486 is identical to the chapter about the Pentium
that I quoted in my last mail.

* I used "CS: LODSW" on an 8088, that never crashed ;)

--
	Manfred

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:19 EST