Its about time somebody did an open specification for a CISC processor inspired by the most beautiful CISC machine of all time - the VAX (Virtual Adress eXtension). This machine had an impressive ortogonal instruction set with operation-operand-operand-operand, which the OpenCISC will have, too.
* instruktionssættet skal være ortogonalt - operator, destination, operand, [operand] * mange adresseringsmetoder * VAX inspireret * registre på 64 bit * første indhold af instruktion skal være længde-information for instruktionen, så man allerede her kan påbegynde dekodning af næste instruktion instruktionsord | ----------------+ llll.dddd xxxx.yyyy oooo.oooo ????.???? - 32-bits instruktionsheader, "llll" beskriver hvor mange ord (=32bit) yderligere instruktionen består af. "dddd" & "xxxx" & "yyyy" er adresse-typerne for de tre operander addresseringstyper | -------------------+ 0000 - ingen operand på denne plads før-eller-siden må der være instruktioner, der kun skal bruge 0 eller 1 operand 0001 - immediate64 dublat - skyldes blot mangel på register - kan måske fjernes 0010 - register mest anvendte operand 0011 - register+immediate64 ofte anvendt 0100 - [register] typisk addressering 0101 - [register+immediate64] typisk adressering 0110 - [[register]] meget listig - følge pointer 0111 - [[register+immediate64]] endnu mere listig - følge pointer med offset til første element i strukturen 1000 - immediate8 1001 - immediate16 1010 - immediate32 1011 - immediate64 1100 - [register], register+=immediate64 til at skanne gennem tabeller og hente et element ud 1101 - [register+immediate64], register+=immediate64 som ovenfor, men med offset ind i elementet 1110 - [[register+immediate64]+immediate64] 1111 - [register+immediate64], register=[register+immediate64] kan bruges til at iterere gennem en kædet liste Det værste er 1111 operanden, den fylder 5 ord, 3 af disse =15 ord passer med "llll"