Instruction and Data Formats
There were two instruction formats, referred to as "Type A" and "Type B". Most instructions were of type B.
Type A instructions had, in sequence, a three bit prefix (instruction code), a 15 bit decrement field, a 3 bit tag field, and a 15 bit address field. They were conditional jump operations based on the values in the decrement registers specified in the tag field. Some also subtracted the decrement field from the contents of the decrement registers. The implementation required that the second two bits of the instruction code be non-zero, giving a total of six possible type A instructions. One (STR, instruction code binary 101) was not implemented until the IBM 709.
Type B instructions had, in sequence, a 12 bit instruction code (with the second and third bits set to 0 to distinguish them from type A instructions), a two bit flag field, four unused bits, a 3 bit tag field, and a 15 bit address field.
- Fixed point numbers were stored in binary sign/magnitude format.
- Single precision floating point numbers had a magnitude sign, an 8-bit excess-128 exponent and a 27 bit magnitude
- Alphanumeric characters were 6-bit BCD, packed six to a word.
The instruction set implicitly subdivided the data format into the same fields as type A instructions: prefix, decrement, tag and address. Instructions existed to modify each of these fields in a data word without changing the remainder of the word though the Store Tag instruction was not implemented on the IBM 704. The original Lisp used the address and decrement fields to store, respectively, the head and tail of a linked list. The primitive functions car ("Contents of Address part of Register number") and cdr ("Contents of Decrement part of Register number") were named after these fields. The meaning of the term "Register number" is unclear; possibly it refers to an old use of the word "Register" to mean "memory location". The frequently seen claim that they stand for "contents of address register" and "contents of decrement register" does not match the implementation, and the IBM 704 did not have a programmer-accessible address register.
Read more about this topic: IBM 704
Famous quotes containing the words instruction and/or data:
“Everything from airplanes to kitchen blendersand even chopstickscomes with an instruction manual. Children, despite all their complexity, do not.”
—Lawrence Kutner (20th century)
“This city is neither a jungle nor the moon.... In long shot: a cosmic smudge, a conglomerate of bleeding energies. Close up, it is a fairly legible printed circuit, a transistorized labyrinth of beastly tracks, a data bank for asthmatic voice-prints.”
—Susan Sontag (b. 1933)