Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!ucbvax!ucdavis!csusac!mmsac!qmet!sc From: sc@qmet.UUCP (Steve Croft) Newsgroups: comp.arch Subject: Re: PUSH on i8088/i80x86 Message-ID: <830@qmet.UUCP> Date: 9 Jan 90 16:41:14 GMT References: <182DAVISTD@MSU> <5524@bd.sei.cmu.edu> <10190@microsoft.UUCP> <5550@bd.sei.cmu.edu> Organization: Qualimetrics, Inc., Sacramento Lines: 23 Well, to clear things up... here is an extract from the Intel iAPX 286 Programmer's Reference Manual 1984, Appendix D (iAPX 86/88 Software Compatibility Considerations), page D-2: 8. Do not Rely on the Value Written by PUSH SP. The iAPX 286 will push a different value on the stack for PUSH SP than the iAPX 86/88. If the value pushed is important, replace PUSH SP instructions with the following three instructions: PUSH BP MOV BP,SP XCHG BP,[BP] This code functions as the iAPX 86/88 PUSH SP instruction on the iAPX 286. Steve -- ****************************************************************************** * If what I say is not correct, * Steve Croft, Qualimetrics, Inc. * * then it's not what I meant! * (ucbvax!ucdavis!csusac!qmet!sc) * ******************************************************************************