Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .ORIG x3000
- ;;;;;;;;;;;;;;;;;;;CLEAR REGISTERS;;;;;;;;;;;;;;;;;;;
- ADD R0, R0, #0 ;Holds the number to be shifted
- ADD R1, R1, #0 ;Number of Bits to shift by
- ADD R2, R2, #0 ;Number of Current Shifted Bits
- ADD R3, R3, #0 ;Temp Store
- ADD R4, R4, #0 ;Current Shifted Number
- ADD R5, R5, #0 ;Bit Mask
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;LOAD REGISTERS;;;;;;;;;;;;;;;;;;;
- LD R0, #202 ;Number to Shift
- LD R1, #4 ;Number of Bits to Shift
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- JSR MAIN_LOOP
- IF_BRP:
- ADD R3, R4, R4 ;ADD R1 to itself and output back into R1
- ADD R4, R4, #0 ;Clear R4
- STR R4, R3, #0 ;Store Back in R4
- ADD R3, R3, #0 ;Clear R3
- IF_BRZ:
- ADD R3, R4, R4 ;ADD R1 to itself and output back into R1
- ADD R4, R4, #0 ;Clear R4
- STR R4, R3, #0 ;Store Back in R4
- ADD R3, R3, #0 ;Clear R3
- LD R5, BIT_AA ;Load Bit Mask
- AND R3, R4, R5 ;AND R4 and R5
- STR R4, R3, #0 ;Store Back in R4
- FIRST_BRP:
- ADD R3, R1 #1
- ;LD R4, R3
- MAIN_LOOP:
- LD R5, BIT_16
- AND R3, R0, R5
- BRp FIRST_BRP
- LD R5, BIT_15
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_14
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_13
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_12
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_11
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_10
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_9
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_8
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_7
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_6
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_5
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_4
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_3
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_2
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- LD R5, BIT_1
- AND R3, R0, R5
- BRp IF_BRP
- BRz IF_BRZ
- ADD R1, R1, #-1 ;Decrement Counter
- BRp MAIN_LOOP
- BRnz HALT
- ;;;;;;;;;;;;;;;;;;;;SET BITSHIFTS;;;;;;;;;;;;;;;;;;;;
- BIT_1 .FILL x0001 ;1
- BIT_2 .FILL x0002 ;2
- BIT_3 .FILL x0004 ;4
- BIT_4 .FILL x0008 ;8
- BIT_5 .FILL x0010 ;16
- BIT_6 .FILL x0020 ;32
- BIT_7 .FILL x0040 ;64
- BIT_8 .FILL x0080 ;128
- BIT_9 .FILL x0100 ;256
- BIT_10 .FILL x0200 ;512
- BIT_11 .FILL x0400 ;1024
- BIT_12 .FILL x0800 ;2048
- BIT_13 .FILL x1000 ;4096
- BIT_14 .FILL x2000 ;8192
- BIT_15 .FILL x4000 ;16384
- BIT_16 .FILL x8000 ;32708
- BIT_AA .FILL xFFFE ;Value to Add when BRz
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- .END
Add Comment
Please, Sign In to add comment