Site Map Index Home Frobenius Last Next

IBM 7090/94 Instruction Formats

The 7090/94 was a fixed word length machine and instructions always required one 36-bit word. There were several instruction formats some of which did not use all available bits.

Instructions could specify a single location in memory (unlike some other contemporary machines that specified more than one location -- e.g., the drum-based IBM 650 that also specified the location of the next executable instruction). Most instructions implied the use of one or more registers.

There were five different instruction formats with additional formats that were used with data channel I/O commands. The different formats were identified as formats 'A' through 'E' with format 'B' being by far the most common:

Instruction Formats
'A'(Bits S, 1-2)'D' (Bits 3-17)'T' (Bits 18-20)'Y' (Bits 21-35)Used with Index Register 15-Bit Decrement Field
'B''OP' (Bits S, 1-11)'F' (Bits 12-13)(Bits 14-17)'T' (Bits 18-20)'Y' (Bits 21-35)Most Common Format
'C'(Bits S, 1-9)'C' (Bits 10-17)(Bits 18-19)(Bit 20)'Y' (Bits 21-35)8-Bit Count Field -- Not Common
'D'(Bits S, 1-11)(Bits 12-17)'R' (Bits 18-35)18-Bit Mask ('R') Used with Sense Indicators
'E'+/-0760 (Bits S, 1-11)(Bits 12-17)'T' (Bits 18-20)(Bits 21-23)(Bits 24-35)Test Instruction

The purposes of the various instruction fields were as follows:

Instruction Field Components
Operation Code ('OP')S-11Usually a twelve-bit code (11-bits plus the sign) which defined the operation to be performed. In the 7090/94 octal convention, the sign plus four octal digits designated the operation code.
Flag ('F')12-13Used to specify indirect addressing. The positions were zero when indirect addressing was not used.
Tag ('T')18-20Used to indicate index register modification. The positions were zero when no modification was to be performed.
Address ('Y')21-35The address of the operand.
Decrement ('D')13-17Used to change index registers and to test index register contents.
Count ('C')10-17Controlled repetition of certain operations.

In source code listings, twelve octal digits were required for an instruction (not including the address of the instruction which required five additional digits) which were divided as follows:

Source Code Listing
+/-XXXX (4-Digit Operation Code (including sign))X (Indirect Addressing)0 (Not Used)X (Index RegisterXXXXX (5-Digit Address)

A short example of a source code fragment listing follows:
00013   0774 00 1 01750         AXT      1000,1     COUNT OF ITEMS TO SUM  
00014   0774 00 2 00000         AXT      0,2        XR2 IS INDEX INTO AREA
00015   0600 00 0 02032         STZ      TOTAL      PRESET SUM TO ZERO    
00016   0500 00 2 00060   LOOP1 CLA      AREA,2     ADD IN AN ELEMENT OF AREA
00017   0300 00 0 02032         FAD      TOTAL      ...BLOCK OF NUMBERS
00020  -0600 00 0 02032         STO      TOTAL      UPDATE TOTAL...
00021   1 77777 2 00022         TXI      *+1,2,-1   BUMP TAG FOR AREA  
00022   2 00001 1 00016         TIX      LOOP1,1,1  ALL THROUGH SUMMING, NO...
00023   0131 00 0 00000         XCA                 TOTAL INTO MQ LIGHTS
00024   0000 00 0 00024         HTR      *          HALT COMPUTER...
00060                     AREA  BSS      1000       FULL OF NUMBERS TO ADD
02032                     TOTAL BSS      1          TOTAL OF ALL NUMBERS
. -- Last Revision: 23 August 2001
Copyright © 1996 - 2018 Jack Harper (unless otherwise noted)
Site Map Index Home Frobenius Last Next