typedef struct args { int arg; struct args *nextArg; // Allows dynamically sized lists of arguments. For eg. syscall will just be 1 element, but add has 4 elements. } args; typedef struct instruction { int formatType; // 0 = R, 1 = I, 2 = J struct instruction* nextInstruction; struct args* a; // A linked list of each argument of the instruction. } instruction;