Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site x.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!bellcore!decvax!wanginst!vaxine!encore!talcott!panda!genrad!mit-eddie!cybvax0!frog!x!john From: john@x.UUCP (John Woods) Newsgroups: net.unix-wizards Subject: Re: Curiosity Message-ID: <408@x.UUCP> Date: Mon, 25-Feb-85 17:07:42 EST Article-I.D.: x.408 Posted: Mon Feb 25 17:07:42 1985 Date-Received: Fri, 1-Mar-85 07:36:34 EST References: <8502@brl-tgr.ARPA> Organization: Charles River Data Systems, Framingham MA Lines: 28 > All right, you guys! I've been watching this conversation fly by for > some weeks now, and I have one burning question to ask: > What the #%$@ does the MARK instruction do??!? [Hoping no one else answers...] MARK N (bit pattern 0064NN) does the following: SP <- PC + 2 x NN PC <- R5 R5 <- (SP) + NN = number of parameters (This according to my Microcomputer Processor Handbook. I think the + on the last line may be spurious) The way to use this instruction to facilitate function return is "obvious". (and if you believe THAT, I have this bridge...:-) Having never seen it used, I can't offer examples of how to use it (and thinking about it makes my brain hurt!), but a hint: the MARK N instruction goes somewhere in the stack frame, and you return directly to it, rather than directly to the subroutine did the calling. Just goes to show you what happens when you use microcode roms that are too big :-) -- John Woods, Charles River Data Systems, Framingham MA, (617) 626-1101 ...!decvax!frog!john, ...!mit-eddie!jfw, jfw%mit-ccc@MIT-XX.ARPA Sorry, I don't feel deep right now.