;; File: leftshift.asm ;; Description: ... fill this in ;; Author: ... fill this in ;; Date: ... fill this in .ORIG x3000 BR MAIN ;; Input variables TOSHIFT .BLKW 1 ; Input word to left shift A .BLKW 1 ; Input variable A, A >= B B .BLKW 1 ; Input variable B, B <= A LS_AMOUNT .BLKW 1 ; Input to subroutine LEFT_SHIFT ; ;; Output variables SHIFTED .BLKW 1 ; Result after shifiting left R_DIFF .BLKW 1 ; Result computed by COMPUTE_DIFF ;; Function: main ;; ... fill in description MAIN AND R1,R1,#0 ; R1 = 0 JSR COMPUTE_DIFF ; Call subroutine COMPUTE_DIFF ; ... load value of R_DIFF and store in LS_AMOUNT JSR LEFT_SHIFT ; Call subroutine LEFT_SHIFT HALT ; Program complete ; ;; Subroutine: COMPUTE_DIFF ;; Input: A, B COMPUTE_DIFF ;.... complete rest RET ; return from subroutine ; ;; Subroutine: LEFT_SHIFT ;; Input: TOSHIFT, LS_AMOUNT LEFT_SHIFT ;.... complete rest RET ; return from subroutine ; .END