Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uunet!mcsun!ukc!strath-cs!cs.glasgow.ac.uk!bru-cc!md89mch From: md89mch@cc.brunel.ac.uk (Martin Howe) Newsgroups: comp.arch Subject: Re: PUSH on i8088/i80x86 Message-ID: <1244@Terra.cc.brunel.ac.uk> Date: 10 Jan 90 23:55:30 GMT References: <182DAVISTD@MSU> <5524@bd.sei.cmu.edu> Reply-To: md89mch@cc.brunel.ac.uk (Martin Howe) Organization: Dept. of EE &E, Brunel University, Uxbridge, UK Lines: 24 In article <5524@bd.sei.cmu.edu> firth@sei.cmu.edu (Robert Firth) writes: >>On the i8088, a "PUSH SP" decrements SP before pushing it onto the stack. On >>the i80x86, SP is pushed onto the stack before it is decremented (somehow). In the iAPX-286 manual, I remember it saying that the 802[and presumable 34]86 pushes a DIFFERENT value for SP onto the stack from that pushed by the 8086/8088. I don't know about the 186 and I've never heard of any 8086/8088 difference, since they have the same execution units. On a '286, though PUSH BP MOV BP,SP XCHG BP,[BP] is supposed to emulate the behaviour of the 8086/8088's PUSH SP, at least according to Intel. I hope this helps. Regards, -- Martin C. Howe | "Motorhead will be the DIRTIEST band in MSc. Microelectronics | Rock N' Roll. If this band moved in next door, System Design, Brunel U. | your lawn would die." - Kilminster Any unattributed opinions are mine, but YOU can have them today for just $20 !