Instruction Set
IBM 650 instructions consisted of a two-digit op code, a four-digit data address and the four-digit address of the next instruction. The sign was ignored. The 650 had a 20-digit accumulator, divided into 10-digit upper and lower sections with a common sign. Data read from the drum went through a 10-digit distributer. Instructions went to a program register. Arithmetic was performed by a one-digit adder. Additional instructions were provided for options, such as floating point, core storage, index registers and additional I/O devices. The base machine had 42 op codes. With all options installed, there were 97 op codes.
| 70 | RD | Read | 
| 71 | PCH | Punch | 
| 69 | LD | Load distributor | 
| 24 | STD | Store distributor | 
| 10 | AU | Add to upper | 
| 15 | AL | Add to lower | 
| 11 | SU | Subtract from upper | 
| 16 | SL | Subtract from lower | 
| 60 | RAU | Reset (entire accumulator) and add into upper | 
| 65 | RAL | Reset and add into lower | 
| 61 | RSU | Reset and subtract into upper | 
| 66 | RSL | Reset and subtract into lower | 
| 20 | STL | Store lower into memory | 
| 21 | STU | Store upper into memory * | 
| 22 | STDA | Store lower data address | 
| 23 | STIA | Store lower instruction address | 
| 17 | AABL | Add absolute to lower | 
| 67 | RAABL | Reset and add absolute to lower | 
| 18 | SABL | Subtract absolute from lower | 
| 68 | RSABL | Reset and subtract absolute into lower | 
| 19 | MULT | Multiply | 
| 14 | DIV | Divide | 
| 64 | DIVRU | Divide and reset upper | 
| 44 | BRNZU | Branch on non-zero in upper | 
| 45 | BRNZ | Branch on (accumulator) non-zero | 
| 46 | BRMIN | Branch on minus | 
| 47 | BROV | Branch on overflow | 
| 90-99 | BRD | Branch on 8 in distributor positions 1-10 ** | 
| 30 | SRT | Shift (accumulator) right | 
| 31 | SRD | Shift and round | 
| 35 | SLT | Shift left | 
| 36 | SCT | Shift left and count *** | 
| 84 | TLU | Table lookup | 
| 00 | No-Op | No operation | 
| 01 | Stop | Stop if console switch is set to stop, otherwise no-op | 
Notes:
- * Value stored takes sign of accumulator, except after a divide operation; then sign of remainder is stored.
- ** Used to allow 533 control panel to signal CPU.
- *** Counts high-order zeros in upper accumulator
Read more about this topic: IBM 650
Famous quotes containing the words instruction and/or set:
“Everything from airplanes to kitchen blendersand even chopstickscomes with an instruction manual. Children, despite all their complexity, do not.”
—Lawrence Kutner (20th century)
“I grew wild
Even accusing Heaven because
It had set down among its laws:
Nothing that we love over-much
Is ponderable to our touch.”
—William Butler Yeats (18651939)