ASL and LSR operations implemented

And some refactoring