Date: Thu, 20 Aug 1998 09:42:09 +0200 From: Hans-Bernhard Broeker Message-Id: <199808200742.JAA21449@acp3bf.physik.rwth-aachen.de> To: GAMMELJL AT SLU DOT EDU CC: djgpp AT delorie DOT com Subject: Re: assembly language subroutines Newsgroups: comp.os.msdos.djgpp Organization: RWTH Aachen, III. physikalisches Institut B Precedence: bulk In article <01J0S6CR6YJM94G7O9 AT SLU DOT EDU> you wrote: [...] Just to clear up some of the views, I've looked up the exact meaning of 'enter' and 'leave' at home (in the TASM reference handbook). So here it goes: 'enter $xx' is equivalent to pushl %ebp subl $xx, %esp movl %esp, %ebp and 'leave' (no arguments, at least up to i486) equals movl %ebp,%esp popl %ebp In addition, the TASM reference mentions another form 'enter $xx, $yy', but that seems to be too confusing to even describe it in a sensible fashion. The only reason for the existence of these opcodes seems to be that they're shorter than the full sequence they substitute (--> save code prefetch queue size). But on modern processors, (586 and up), with their increasing emphasis on RISC rather than CISC instructions, they got out of fashion. -- Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de) Even if all the snow were burnt, ashes would remain.