@Override
    public int getOperandCode() {
        switch (this.register) {
            case A:
                return 0x08;
            case B:
                return 0x09;
            case C:
                return 0x0A;
            case X:
                return 0x0B;
            case Y:
                return 0x0C;
            case Z:
                return 0x0D;
            case I:
                return 0x0E;
            case J:
                return 0x0F;
            case SP:
                return 0x19;
            default:
                throw new IllegalArgumentException("operand code of register " 
                        + this.register.name() + " is unknown");
        }
    }