I think that your memories of those details are a lot clearer than mine.
It's been a long time, and I never did much of anything with the 186/188,
so never really got the hang of where it fit into the sequence. I don't
have my files handy, and the few reference materials that are handy
(such as the MASM 5.1 instruction set reference) are unreliable and
very inconsistent. Between your knowledge and what it says, I'd be far
more inclined to trust you.
--
Fred Cisin cisin(a)xenosoft.com
XenoSoft
> > Not that I know off. The V20 did behave
exactly like an 8088.
> Besides, it wasn't a completely Bug-For-Bug replacement. NEC failed to
> implement some of the quirks of the 8088. For example, if an interrupt
> occurred during the execution of an instruction with a double prefix, the
> NEC would continue, but the intel would drop one of the prefixes when
> resuming.
> REP MOVSB DS:[SI] DS:[DI]
> will resume with a V20, but with an 8088 will only do one more rep after
> an interrupt.
On Wed, 12 Mar 2003, Hans Franke wrote:
> Well, that's eactly the 186 behaviour. Now considering that the
Not MY experience. The 386 is the first Intel
that I'm aware of that
fixed the double prefix bug. But NONE of the NEC v series had that
bug. (ONE way to tell whether the current chip was Intel or NEC)
I have to step back here. I always thought the 186 had this already
fixed. Maybe I'm mixing up these two CPUs.
Didn't the 80C86/88 also have the double prefix bug fixed ?
> timeing was also exactly like 186 (or real
mode 286), and the
> instruction set is the same, I still think NEC just used the
Did the V20 have the INSB/INSW/OUTSB/OUTSW
instructions? (present in
80186/80188, but not 8086/8088
It had all the 186 extensions, especialy Enter, Leave, Pusha Popa,
Ins, Outs and Imul. I can't gurantee for Bound, 'cause I never used
that on a V20 (but I did on the 186).
Furtermore the V20 did include a bunch of new, nice instructions
(if in 86 mode). Just I know of no software to use them. For example,
A bunch of operations for 4 Bit values - aka BCD and Bitoperations.
186 (188)
core as template for the V20/V30 - Considering that
V40/50 where like the 186 with integrated perhipherals, you
may considere it as a two step knock off...
BUT,...
Other V20 instructions followed the 8088/8086 model.
Such as what happens if you push SP. For example:
MOV BX, SP
PUSH SP
MOV CX, SP
POP AX
; will copy the value pushed by PUSH SP into AX.
; on the 8088/8086 and the V20, AX will equal CX
; on the 80186/80188, AX will equal BX
(how to tell whether the chip is 8086/8088 v 80186/80188 or above)
Excuse me ? AFAIR that's the way to check if you had a 286 or
above. the 186 did behave exactly like the 86. the pushed SP
is the decremented value, while 286 and above push the original
value, and the test (at least as I did it) was:
PUSH SP
POP AX
CMP AX,SP
Equal -> 286 or above,
Not Equal -> 186 or below.
To test for 186/88 vs 86/88 (and V20/30) was using the shift
operation. starting with th 186, the shift value was anded
by 1Fh. So you would load any value except Zero into AX and
load CL with 32, execute a shift. If the resulting AX was
Zero, it was an 86/88 (of V20/30), if not it was a 186 or
above.
Gruss
H.
--
VCF Europa 4.0 am 03./04. Mai 2003 in Muenchen
http://www.vcfe.org/