Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Richard Damon <news.x.richarddamon@xoxy.net> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: A portable stack in C |
| Date | 2011-11-15 23:07 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <j9vcth$loo$1@dont-email.me> (permalink) |
| References | <4ec14700$0$1387$4fafbaef@reader2.news.tin.it> <j3r3c7tl1v45qjvee173t8759n1074h4ll@4ax.com> <j9t7gd$45e$1@speranza.aioe.org> <j9tdlo$669$1@dont-email.me> <j9temn$o6u$1@speranza.aioe.org> |
On 11/15/11 5:25 AM, jacob navia wrote: >> Clearly one without a stack, perhaps some lowly controller chip. >> > > Impossible. There isn't a CALL instruction then. It is impossible > to implement a CALL without a conceptual stack. Yes, you can "push" > your return address into some register but this is conceptually a stack! > > I have used several machines with the equivalent of a CALL instruction and no built in stack. On one, the call instruction deposited the return address into the location pointed to by the call instruction, and began execution at the next word of memory. (This machine of course did not have the concept of "Rom", all memory was Read/Write, (actually Core)). Typically the subroutine would be written with the Word before the entry point containing a "Jump Far" instruction, which took 2 words, the second being the address to jump to. A second machine a CALL instruction was described as a Branch & Link instruction, where prior to jumping to the specified address, the return address was moved into a "link" register. (Interrupts needed their own version of this register). If a subroutine needed to call another subroutine, it needed to save this register before making the call. Compilers for these machines would use an extension to the language to mark functions that might be recursive, and those would use a special software based stack to save any needed data, like the return address. No recursive functions would use static addresses for this. Of course to be able to claim to be ISO Standard C, they would need to assume that all functions were recursive, but then I was using these machines before C90 was a standard.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-14 17:54 +0100
Re: A portable stack in C Barry Schwarz <schwarzb@dqel.com> - 2011-11-14 20:55 -0800
Re: A portable stack in C jacob navia <jacob@spamsink.net> - 2011-11-15 09:22 +0100
Re: A portable stack in C Ike Naar <ike@iceland.freeshell.org> - 2011-11-15 09:00 +0000
Re: A portable stack in C jacob navia <jacob@spamsink.net> - 2011-11-15 11:26 +0100
Re: A portable stack in C "BartC" <bc@freeuk.com> - 2011-11-15 10:05 +0000
Re: A portable stack in C jacob navia <jacob@spamsink.net> - 2011-11-15 11:25 +0100
Re: A portable stack in C "BartC" <bc@freeuk.com> - 2011-11-15 11:08 +0000
Re: A portable stack in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-11-15 11:45 +0000
Re: A portable stack in C jacob navia <jacob@spamsink.net> - 2011-11-15 12:57 +0100
Re: A portable stack in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-11-15 12:39 +0000
Re: A portable stack in C jacob navia <jacob@spamsink.net> - 2011-11-15 14:26 +0100
Re: A portable stack in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-11-15 15:31 +0000
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-15 12:53 -0800
Re: A portable stack in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-11-15 21:15 +0000
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-15 14:29 -0800
Re: A portable stack in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-11-15 22:59 +0000
Re: A portable stack in C James Kuyper <jameskuyper@verizon.net> - 2011-11-15 17:30 -0500
Re: A portable stack in C Willem <willem@toad.stack.nl> - 2011-11-15 22:33 +0000
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-15 15:07 -0800
Re: A portable stack in C Seebs <usenet-nospam@seebs.net> - 2011-11-15 22:37 +0000
Re: A portable stack in C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-11-15 23:01 +0000
Re: A portable stack in C "BartC" <bc@freeuk.com> - 2011-11-15 18:45 +0000
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-15 12:41 -0800
Re: A portable stack in C Richard Damon <news.x.richarddamon@xoxy.net> - 2011-11-15 23:07 -0500
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-15 20:18 -0800
Re: A portable stack in C Robert Wessel <robertwessel2@yahoo.com> - 2011-11-15 22:53 -0600
Re: A portable stack in C "BartC" <bc@freeuk.com> - 2011-11-16 12:00 +0000
Re: A portable stack in C falk@rahul.net (Edward A. Falk) - 2011-11-16 16:08 +0000
Re: A portable stack in C David Thompson <dave.thompson2@verizon.net> - 2012-01-19 02:41 -0500
Re: A portable stack in C Thomas David Rivers <rivers@dignus.com> - 2011-11-15 11:21 -0500
Re: A portable stack in C Barry Schwarz <schwarzb@dqel.com> - 2011-11-15 17:53 -0800
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-15 19:21 +0100
Re: A portable stack in C Barry Schwarz <schwarzb@dqel.com> - 2011-11-15 17:53 -0800
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-18 08:13 +0100
Re: A portable stack in C Rui Maciel <rui.maciel@gmail.com> - 2011-11-15 10:14 +0000
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-15 19:20 +0100
Re: A portable stack in C Acid Washed China Blue Jeans <chine.bleu@yahoo.com> - 2011-11-15 08:13 -0800
Re: A portable stack in C Kaz Kylheku <kaz@kylheku.com> - 2011-11-15 16:27 +0000
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-15 19:21 +0100
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-15 13:19 -0800
Re: A portable stack in C blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-11-17 15:45 +0000
Re: A portable stack in C John Gordon <gordon@panix.com> - 2011-11-17 15:56 +0000
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-17 18:02 +0100
Re: A portable stack in C "BartC" <bc@freeuk.com> - 2011-11-17 17:35 +0000
Re: A portable stack in C Vincenzo Mercuri <vincenzo.mercuri@yahoo.it> - 2011-11-17 18:45 +0100
Re: A portable stack in C Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-11-18 00:27 -0800
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-18 10:40 +0100
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-20 07:22 +0100
Re: A portable stack in C Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-11-21 00:38 -0800
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-21 03:44 -0600
Re: A portable stack in C Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-11-21 13:00 +0200
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-21 06:07 -0600
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-21 03:50 -0600
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-21 07:48 -0600
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-21 20:11 +0100
Re: A portable stack in C "BartC" <bc@freeuk.com> - 2011-11-18 12:47 +0000
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-18 23:31 -0600
Re: A portable stack in C blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-11-18 14:45 +0000
Re: A portable stack in C James Kuyper <jameskuyper@verizon.net> - 2011-11-18 10:14 -0500
Re: A portable stack in C Keith Thompson <kst-u@mib.org> - 2011-11-18 12:20 -0800
Re: A portable stack in C blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-11-19 17:23 +0000
Re: A portable stack in C Seebs <usenet-nospam@seebs.net> - 2011-11-19 18:49 +0000
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-19 22:41 -0600
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-20 07:27 +0100
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-21 20:12 +0100
Re: A portable stack in C "io_x" <a@b.c.invalid> - 2011-11-20 07:50 +0100
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-21 01:24 -0600
Re: A portable stack in C Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-11-21 05:22 -0800
Re: A portable stack in C "Jo" <none@none.none> - 2011-11-22 03:31 -0600
Re: A portable stack in C 88888 Dihedral <dihedral88888@googlemail.com> - 2011-11-21 06:38 -0800
csiph-web