lkml.org 
[lkml]   [2000]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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/

\
 
 \ /
  Last update: 2005-03-22 13:56    [W:0.044 / U:0.676 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site