Article View: alt.lang.asm
Article #164Hardware bug / max()min()
From: Yeats
Date: Fri, 22 Jan 1993 22:51
Date: Fri, 22 Jan 1993 22:51
38 lines
1340 bytes
1340 bytes
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 ? Btw, here's the max() routine discussed earlier, made one byte shorter ;-) AX := unsigned-max (AX,DX) -------------------------- SUB AX,DX CMC ; leave this out to get AX := MIN(AX,DX) SBB CX,CX AND AX,CX ADD AX,DX --- stumble@utopia.hacktic.nl (Yeats)
Technical Details
Message-ID:
<ssysXB4w165w@utopia.hacktic.nl>Path:
arc1-ca.pugleaf.net!sparky!uunet!mcsun!sun4nl!hacktic!utopia!stumbleShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!sun4nl!hacktic!utopia!stumble From: stumble@utopia.hacktic.nl (Yeats) Newsgroups: alt.lang.asm Subject: Hardware bug / max()min() Message-ID: <ssysXB4w165w@utopia.hacktic.nl> Date: Fri, 22 Jan 93 22:51:39 GMT Organization: HACK-TIC NETWORK FOUNDATION Lines: 38