; ************************************************* ; *** ShiftRot.68 *** ; *** Tests instructions for shifting and *** ; *** rotating in Sim68k *** ; *** Tests ASL, ASR, ROL, ROR *** ; *** Also uses BRA, MOVE, DSP, DSR and HLT *** ; ************************************************* ; ; Assembly language OpCode Oper1 Oper2 ; MSB LSB MSB LSB MSL LSB ;-------------------------------------------------- ; Branch to the first instruction BRA.W @Main ; ; Declarations DEF.L @Const1, #$F0F0F0F0 ; DEF.L @Const2, #$0F0F0F0F ; ; Main program LABEL @Main ; ; Test ASL and ASR (byte) MOVE.L @Const1, D0 ; MOVE.L @Const2, D1 ; ASL.B #$3, D0 ; DSP.L D0 ; DSR.B ; ASR.B #$3, D0 ; DSP.L D0 ; ASR.B #$3, D1 ; DSP.L D1 ; ASL.B #$3, D1 ; DSP.L D1 ; DSR.B ; ; Test ASL and ASR (word) MOVE.L @Const1, D0 ; MOVE.L @Const2, D1 ; ASL.W #$3, D0 ; DSP.L D0 ; ASR.W #$3, D0 ; DSP.L D0 ; DSR.B ; ASR.W #$3, D1 ; DSP.L D1 ; DSR.B ; ASL.W #$3, D1 ; DSP.L D1 ; ; Test ASL and ASR (long) MOVE.L @Const1, D0 ; MOVE.L @Const2, D1 ; ASL.L #$3, D0 ; DSP.L D0 ; ASR.L #$3, D0 ; DSP.L D0 ; DSR.B ; ASR.L #$3, D1 ; DSP.L D1 ; DSR.B ; ASL.L #$3, D1 ; DSP.L D1 ; ; Test ROL and ROR (byte) MOVE.L @Const1, D0 ; MOVE.L @Const2, D1 ; ROL.B #$3, D0 ; DSP.L D0 ; DSR.B ; ROR.B #$3, D0 ; DSP.L D0 ; ROR.B #$3, D1 ; DSP.L D1 ; ROL.B #$3, D1 ; DSP.L D1 ; DSR.B ; ; Test ROL and ROR (word) MOVE.L @Const1, D0 ; MOVE.L @Const2, D1 ; ROL.W #$3, D0 ; DSP.L D0 ; ROR.W #$3, D0 ; DSP.L D0 ; DSR.B ; ROR.W #$3, D1 ; DSP.L D1 ; DSR.B ; ROL.W #$3, D1 ; DSP.L D1 ; ; Test ROL and ROR (long) MOVE.L @Const1, D0 ; MOVE.L @Const2, D1 ; ROL.L #$3, D0 ; DSP.L D0 ; ROR.L #$3, D0 ; DSP.L D0 ; DSR.B ; ROR.L #$3, D1 ; DSP.L D1 ; ROL.L #$3, D1 ; DSP.L D1 ; DSR.B ; HLT.B ;