Messages in this thread | | | Date | Thu, 27 Jan 2000 19:46:57 +0100 | From | Manfred Spraul <> | Subject | Re: Hangs after "Loading" but before "Uncompressing" |
| |
"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/
| |