private LegacyInstr decode_20(int word1) throws InvalidInstruction {
        // get value of bits logical[12:14]
        int value = (word1 >> 1) & 0x00007;
        switch ( value ) {
            case 0x00002: return decode_ASR_0(word1);
            case 0x00004: return decode_16(word1);
            case 0x00006: return decode_JMP_0(word1);
            case 0x00001: return decode_17(word1);
            case 0x00003: return decode_18(word1);
            case 0x00007: return decode_CALL_0(word1);
            case 0x00005: return decode_DEC_0(word1);
            case 0x00000: return decode_19(word1);
            default:
            return null;
        }
    }