Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
EDSAC
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Memory and instructions=== [[File:EDSAC (9).jpg|thumb|upright|[[Maurice Wilkes]] inspecting the mercury [[delay-line memory|delay line]] of the EDSAC in construction]] [[File:EDSAC (12).jpg|thumb|Maurice Wilkes and Bill Renwick in front of the complete EDSAC]] The EDSAC's main memory consisted of 1024 locations, though only 512 locations were initially installed. Each contained 18 bits, but the topmost bit was always unavailable due to timing problems, so only 17 bits were used. An instruction consisted of a five-bit instruction code, one spare bit, a 10-bit operand (usually a memory address), and one length bit to control whether the instruction used a 17-bit or a 35-bit operand (two consecutive words, [[Endianness|little-endian]]). All instruction codes were by design represented by one mnemonic letter, so that the ''Add'' instruction, for example, used the EDSAC character code for the letter A. Internally, the EDSAC used [[two's complement]] [[Binary number|binary]] numbers. Numbers were either 17 bits (one word) or 35 bits (two words) long. Unusually, the [[Binary multiplier|multiplier]] was designed to treat numbers as [[fixed-point arithmetic|fixed-point]] fractions in the range β1 β€ ''x'' < 1, i.e. the binary point was immediately to the right of the sign. The [[Accumulator (computing)|accumulator]] could hold 71 bits, including the sign, allowing two long (35-bit) numbers to be multiplied without losing any precision. The instructions available were: * Add * Subtract * Multiply-and-add * AND-and-add (called "Collate") * Shift left * Arithmetic shift right * Load multiplier register * Store (and optionally clear) accumulator * Conditional goto * Read input tape * Print character * Round accumulator * No-op * Stop There was no division instruction (but various division subroutines were supplied) and no way to directly load a number into the accumulator (a "Store and zero accumulator" instruction followed by an "Add" instruction were necessary for this). There was no unconditional jump instruction, nor was there a procedure call instruction β it had not yet been invented. [[Maurice Wilkes]] discussed relative addressing modes for the EDSAC in a paper published in 1953. He was making the proposals to facilitate the use of [[subroutine]]s.<ref>Proceedings of the Cambridge Philosophical Society, Vol. 49, Pt. 1, p. 84β89.</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)