Format of a VAX Instruction, Fig. 8.1


VAX instructions follow the following format:

+-----------------+
|  op code        |      ---- one byte (low address)
+-----------------+
|  operand        |      ---- one or more bytes       \
|  specifier 1    |                                    |
+-----------------+                                    |
|  operand        |      ---- one or more bytes        |_ one operand specifier
|  specifier 2    |                                    |  per operand
+-----------------+                                    |
|                 |                                    |
|    . . . .      |                                   /

An operand specifier usually looks like:

+-----------------+
| mode byte       |   ---- one byte encodes addressing mode
+-----------------+
| additional      |   ---- possibly several bytes of information
| information     |        depending on the mode
+-----------------+

Notes:


QUESTION 3:

An instruction may take up a dozen or more bytes. Why did the designers of the VAX make the opcode of an instruction the first byte of the instruction?


ANSWERS:

  1. Since the PC will be pointing there after the previous instruction has executed.
  2. Just a convention, it could just as easily be the last byte of the instruction.
  3. The opcode is in unsigned binary so must be in the low order bits.
  4. So the opcode can be moved into the PC.