private void emitLoadOrStore(int opcode, int a, Adda address) throws Exception {
        Value v = address.getArg1();
        int b, c;
        if(v instanceof Immediate) {
            c = ((Immediate)v).getValue();
            opcode = opcode - 1;
            v = address.getArg2();
            if(v.equals(Type.getGBP())) {
                b = gbp;
            } else if(v.equals(Type.getFP())) {
                b = fp;
            } else {
                b = location2(v);
            }
        } else {
            if(v.equals(Type.getGBP())) {
                b = gbp;
            } else if(v.equals(Type.getFP())) {
                b = fp;
            } else {
                b = location2(v);
            }
            v = address.getArg2();
            if(v instanceof Immediate) {
                c = ((Immediate)v).getValue();
                opcode = opcode - 1;
            } else if(v.equals(Type.getGBP())) {
                c = gbp;
            } else if(v.equals(Type.getFP())) {
                c = fp;
            } else {
                c = location2(v);
            }
        }
        emit(DLX.assemble(opcode, a, b, c));
    }