Input and output instructions make up yet another group. For example, there might be a symbol:
It means: "Dear Punched Tape Reader LS, kindly sense what is on the punched tape with which you have just been fed, send it section by section to the input store, starting at address (4711)." Similar instructions control the reading of magnetic tapes, the punching of punched tapes, the sensing of punched cards, and the writing-out of results on punched tapes, teleprinters and high-speed printers.
Finally, there are instructions which regulate traffic between the different units of the computer. At their command, information is taken from a magnetic tape and stored on a magnetic drum, or taken from the drum into the core storages. "Wind back!" is one of the magnetic tape instructions "Start reading from the tape there and there!" is another.
Every symbolic command can naturally be translated into the machine language of the computer involved. The symbolic instruction
meaning in English, "Program, please jump to address (1234)!" is simply expressed, in the machine language of the "ER 56," as "1234 0 12." The symbolic command
by means of which the data from the punched tape are to be forwarded into the store - from address (4711) - is written in the "ER 56" machine language "4711 0 67."
The language of the "ER 56" is comparatively simple. Other computers have to be talked to in more complicated terms. In the case of those working in a forty-digit binary code, the instructions must naturally be 40 digits long. But we shall not inflict those on you. Not even programmers have to struggle with them. The programmers have done their job when the detailed program has been drawn up in the form of symbolic commands. Translation into the machine language is performed by assistants who specialize in this work. Highly sophisticated computers today even have their own supplementary programs, "assembler routines," which understand the symbolic script and can translate it into their own language themselves.
As you now know how many different ways of giving instructions there are, we might now enlarge the adding program mentioned some pages back. So far, we have used this program merely for counting. The question of just how the numbers we want to add up get into the storages, and of how the result comes to light, has been neglected. But now it is time for us to concern ourselves with this question, for what is the use of even the most beautiful calculation if the result stays in the accumulator in the form of magnetic pulses?
We type the numbers we wish to add up on a punched tape, using a teleprinter. So, for our first instruction, we need one that will remove these numbers from the punched tape and put them into the storages - from address (1001), for that is the number for which our program has been set up:
We now have to think about the result that will eventually turn up in the accumulator. First of all, we want to put it up in an empty storage cell, say in (0610). In such a case, the address (0610) is called an "auxiliary cell." The symbolic instruction would rum
The tape punch can take the result from the auxiliary cell and punch it into a tape. The instruction for this is:
If you have no objection, we will set up our cyclic addition program once more - naturally with the instruction we have just discovered. We state it first in symbolic language and then in the code Script of the "ER 56." In the third column we note the addresses in which we want to store each program instruction. We start by selecting an address at random; it turns out to be address (0600). We could take any other address; our computer has plenty of them.
|Instructions in machine code
|Storage addresses for the instructions
Oddities among machine instructions can occur! Suddenly, for example, the machine instruction "0603 0 14" may appear under the address (0606). It is a jump instruction meaning: "Back, at the double!" The person translating the symbolic instructions into the language of the machine has to watch out in this case for the distance to be covered by the backward jump-to instruction address (0603). The arrow which refers to the jump in the symbolic instructions indicates that the distance is just so far. In consequence, address (0603) must appear in the machine code for the jump instruction. And sure enough it does; the machine instruction, is "0603 0 14."
The seven nines >>>>