3 ms·
It was not the number of instructions in the VAX ISA, it was their complexity and the multiple indirection level addressing modes. Some of the instructions are
by inkyoto 3y ago
It was not the number of instructions in the VAX ISA, it was their complexity and the multiple indirection level addressing modes.
Some of the instructions are truly mind-boggling even by today's complexity standards, e.g. queue operations (four! – INSQHI, INSQTI, REMQHI and REMQTI), polynominal evaluation (POLYx), index computation, CRC calculation via an optionally supplied polynominal table (CRC), a comprehensive set of character operations, operations on packed numbers and others. The VAX-11 instruction comes with examples in a high-level programming language (COBOL, FORTRAN or PL/1) and how that translates into the VAX-11 instructions, e.g.:
COBOL:
01 A-ARRAY.
02 A PIC X(10) OCCURS 15 TIMES.
01 B PIC X(10).
MOVE A(I) TO B.
VAX-11 assembly:
INDEX I, #1, #15, #10, #0, R0
MOVC3 #10, A-10[R0], B
Or, the bitwise use of INDEX:
PL/1:
DCL A(-3:10) BIT (5);
A(I) = 1;
VAX-11 assembly:
INDEX I, #-3, #10, #5, #3, R0
INSV #1, R0, #5, A ; Assumes A is byte aligned