On Fri, 01 Mar 2002 15:14:06 +1000, James vice Kali McLaughlin wrote:

> On Thu, 28 Feb 2002 04:20:57 -0400, Clarence Verge wrote:

>> On Wed, 27 Feb 2002 23:59:07 -0500, Glenn McCorkle wrote:

>>> FWIW,

>>> Reboot.com can be done in only 5 bytes.

>>> EA 00 00 FF FF

> This appears to me to be an absolute jump to address FFFF:0000.

Correct.

> Regarding this, and the other bit with 0040:0072 & 00472, I think that
> you are unecessarily muddying the waters re segment/offset.

Au contraire. I chose to eliminate the ugliness of the segment regsters
in MY version of the example.  While this might stir mud into an Intel
lover's brain there is little chance of further damage there. <g>

> The appropriate address to write to would be F000:FFF0, as this
> signifies 1/ the bios segment and 2/ the reset /startup vector properly.

And someone programmed by Intel. <G> They ARE the same address.

> It would actually be FFFFFFF0 if it were done from protected ( flat )
> memory scheme, but the IBM PC 'wraps' the address.

Or, considering the 20bit bus this crap was designed for, FFFF0
exactly specifies the address.

> Therefore, if you used FFFF:FFFF, the following would result -

>        segment     FFFF
>        offset       FFFF
>        result     10FFEF, which is effectively 0FFEF.

> This would cause execution to commence 'somewhere' in the low memory
> area !

No one suggested this did they ?

> By the way, a better way to set the AX register to -1 ( FFFF ) is as
> follows -

>         XOR AX, AX
>         DEC AX

You probably meant to refer to BX, but that IS the same number of bytes
as:      MOV  BX, FFFF (which is simpler).

All in all, JMP FFFF:0000 is shorter so the gold goes to Glenn. ;-)

-  Clarence Verge.
-- Using Arachne 1.66 on DSL.

Reply via email to