public void SOB(){
        ComputeEffectiveAddress();
        getALU().OP2.set(SelectRegister().get());
        getALU().OP1.set("1");
        getALU().sub();
        if  (SelectRegister().get(20)==0) { // if c(r) > 0
                        
            if (getI().get().equals("0")) 
                getPC().set(getMAR().get());
            else
                getPC().set(getMEMORY().get(getMAR().get()));
        }
        else {
            pcIncrease();
            getALU().OP2.set(getPC().get());
    	    getALU().OP1.set("1");
    	    getALU().add();
            getPC().set (getALU().RES.get());
        }
    
    }