To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

From Wikipedia, the free encyclopedia

The Wheeler Jump is a type of subroutine call methodology that was used on some early computers that lacked hardware support for saving the return address. The concept was developed by David Wheeler while working on the pioneering EDSAC machine in the 1950s.[1] EDSAC had not been built with subroutines in mind, and lacked a suitable processor register or a hardware stack that might allow the return address to be easily stored.

Wheeler's solution was a particular way to write the subroutine code. To implement it, the last line of the subroutine was a "jump to this address" instruction, which would normally be followed by a memory location. In a Wheeler subroutine, this address was normally set to a dummy number, say 0.

To call the routine, the address of the caller would be placed in the accumulator and then the code would jump to the starting point of the routine. The first instructions in the routine would calculate the return address based on the value in the accumulator, typically the next memory location so an increment will suffice, and then write the result to the dummy address previously set aside. When the routine runs its course it naturally reaches the end of the routine which now says "jump to the return address".

As writing to memory is a slow process compared to register access, this methodology is not particularly fast. It also is not capable of expressing recursion.[2] The addition of new registers for this sort of duty was a key design goal of EDSAC 2.

Example

This example demonstrates the technique using a pseudo-assembler language for a simple byte-oriented accumulator-based machine with a single register, A:

 'prepare to call the subroutine
10 COPY PC TO A  ' copy the program counter (10) into the accumulator
11 JUMP          ' jump to...
12 70            ' ... location 70
... many more lines...
70 ADD CONST     ' add the following value to the accumulator...
71 3             ' ... three locations past the original PC value
72 STORE         ' store the value in the accumulator to...
73 91            ' ... the set-aside  memory location
... lines that perform the actual subroutine...
90 JUMP          ' return to...
91 0             ' ... which will be replaced by 13

When this code completes, the JUMP instruction in address 90 will naturally return to location 13, the next instruction after the subroutine.

References

  1. ^ Hill, Mark (2000). Readings in Computer Architecture. Gulf Professional Publishing. p. 3. ISBN 9781558605398.
  2. ^ Prof. David Brailsford, Sean Riley (6 February 2018). The Wheeler Jump. Computerphile; School of Computer Science, University of Nottingham, UK. Retrieved 2023-03-30.
This page was last edited on 30 March 2023, at 01:42
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.