home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!mcsun!sunic!dkuug!diku!terra
- From: terra@diku.dk (Morten Welinder)
- Newsgroups: alt.lang.asm
- Subject: Re: Hardware bug / max()min()
- Message-ID: <1993Jan25.161633.27379@odin.diku.dk>
- Date: 25 Jan 93 16:16:33 GMT
- References: <ssysXB4w165w@utopia.hacktic.nl>
- Sender: terra@embla.diku.dk
- Organization: Department of Computer Science, U of Copenhagen
- Lines: 36
-
- stumble@utopia.hacktic.nl (Yeats) writes:
-
- > I recently discovered what may be a rare hardware bug -
- >the following code will freeze my old 6-8-10mhz 286 AT :
- >
- > MOV AX,[DI]
- > INC DI
- > MOV AX,[DI]
- >
- > Other index registers cause the same hangups but the [DI] never
- >fails to hang at once.
- > Surprisingly, a keyboard reset still worked - as did the LED's.
- >Otherwise my system works fine (WIN3 crashes, so what).
- > On accessing memory using REP MOVSW and then again in a loop with
- >STOSB in two SEPARATE but close pieces of code, there was a more
- >subtle messing up of certain bytes as it run over the 64K segment
- >wrap-around - this bug disappeared when the REP MOVSW was replaced
- >by REP MOVSB with twice the count.
- >
- > Does anyone know anything about this bug ?
- >
-
- The above piece of code is supposed to generate a generel protection
- exception if (and only if) DI is 0FFFFh before or "after". That should
- certainly crash the system: the GP exception corresponds to Int 13h --
- disk io! Try loading a zero into DI before.
-
- Then again you might to having some other kind of trouble.
-
- Morten Welinder
- terra@diku.dk
- --
- -------------------------------------------------------------------------
- Visit the lyrics archive at ftp.uwp.edu (mirrored to nic.funet.fi, a site
- in Finland). All kinds of lyrics available -- upload "yours" and join.
- -------------------------------------------Morten Welinder, terra@diku.dk
-