fixed shift logic, added ASL, and ASR

I tested ASL, seems to work