i need this code to work by Calculate all the single-digit Fibonacci numbers in order Start with the first 2 values in the sequence (0, 1) Calculate the next value by adding together the two largest values Print each number in the sequence With a comma and space after each No comma after the last number Use LC-3 I/O device to print number, commas, and spaces NO numbers printed using Trap Routine should check ddr, dsr , load and store modify the code to work using ALL Guidelines Fib2 the largest Fibonacci number calculates so far ; Fib1 the previous Fibonacci number ; ; For each Calculation: ; Fib2 = Fib1 + Fib2 ; Fib1 = previous Fib2 ; R0 used for PUTS messages ; R1 contains current Fib1 value ; R2 contains current Fib2 value ; R6 is loop counter for main loop ; R7 is not used by this program. Used by Simulate for TRAP and Subroutines .ORIG x3000 Setup LEA R0, Info PUTS ADD R6, R6, #5; Init Main Loop counter (loop 5 times) ;Print first 2 Fib values before starting ;----- Your Code Here -----; ADD R1, R1, #0 ; R1 initialized to 0 ADD R2, R2, #1 ; R2 initialized to 1 ;----- End Your Code Here -----; ;Loop and call subroutines to calculate each subsequent value in the sequence ;Exit the loop once all single-digit values in the sequence have been printed MainLoop ;----- Your Code Here -----; AND R7, R7, #0 ; clear R7 ADD R7, R7, R2 ; copy value of R2 to R7 JSR calcNextFib ; call subroutine to calculate next fibonacci number JSR printNum ; print the number JSR printCommaSpace ; print comma and space AND R2, R2, #0 ; clear R2 ADD R2, R2, R7 ; restore value of R2 from R7 ADD R6, R6, #-1 ; reduce loop counter BRp MainLoop ; continue the loop if R6 is not yet 0 ;----- End Your Code Here -----; Done HALT ;----------------------------------- ;Subroutines ;----------------------------------- ;Uses R1 and R2 to calc next value in Fibonacci sequence ;When complete, Fib2 (R2) will contain the new Fib number ;and Fib1 (R1) will contain the previous value of Fib2 (R2) calcNextFib ;----- Your Code Here -----; ADD R7, R2, R1 ; R7 will contain the sum of R1 and R2 AND R1, R1, #0 ; clear R1 ADD R1, R1, R2 ; copy value of R2 to R1 AND R2, R2, #0 ; clear R2 ADD R2, R2, R7 ; copy value of R7 to R2 ; Return from subroutine ;----- End Your Code Here -----; RET ;Outputs single-digit number to the display ;R2 contains number to print printNum ;----- Your Code Here -----;
i need this code to work by
- Calculate all the single-digit Fibonacci numbers in order
- Start with the first 2 values in the sequence (0, 1)
- Calculate the next value by adding together the two largest values
- Print each number in the sequence
- With a comma and space after each
- No comma after the last number
- Use LC-3 I/O device to print number, commas, and spaces
- NO numbers printed using Trap Routine
- should check ddr, dsr , load and store
modify the code to work using ALL Guidelines
Fib2 the largest Fibonacci number calculates so far
; Fib1 the previous Fibonacci number
;
; For each Calculation:
; Fib2 = Fib1 + Fib2
; Fib1 = previous Fib2
; R0 used for PUTS messages
; R1 contains current Fib1 value
; R2 contains current Fib2 value
; R6 is loop counter for main loop
; R7 is not used by this program. Used by Simulate for TRAP and Subroutines
.ORIG x3000
Setup
LEA R0, Info
PUTS
ADD R6, R6, #5; Init Main Loop counter (loop 5 times)
;Print first 2 Fib values before starting
;----- Your Code Here -----;
ADD R1, R1, #0 ; R1 initialized to 0
ADD R2, R2, #1 ; R2 initialized to 1
;----- End Your Code Here -----;
;Loop and call subroutines to calculate each subsequent value in the sequence
;Exit the loop once all single-digit values in the sequence have been printed
MainLoop
;----- Your Code Here -----;
AND R7, R7, #0 ; clear R7
ADD R7, R7, R2 ; copy value of R2 to R7
JSR calcNextFib ; call subroutine to calculate next fibonacci number
JSR printNum ; print the number
JSR printCommaSpace ; print comma and space
AND R2, R2, #0 ; clear R2
ADD R2, R2, R7 ; restore value of R2 from R7
ADD R6, R6, #-1 ; reduce loop counter
BRp MainLoop ; continue the loop if R6 is not yet 0
;----- End Your Code Here -----;
Done HALT
;-----------------------------------
;Subroutines
;-----------------------------------
;Uses R1 and R2 to calc next value in Fibonacci sequence
;When complete, Fib2 (R2) will contain the new Fib number
;and Fib1 (R1) will contain the previous value of Fib2 (R2)
calcNextFib
;----- Your Code Here -----;
ADD R7, R2, R1 ; R7 will contain the sum of R1 and R2
AND R1, R1, #0 ; clear R1
ADD R1, R1, R2 ; copy value of R2 to R1
AND R2, R2, #0 ; clear R2
ADD R2, R2, R7 ; copy value of R7 to R2
; Return from subroutine
;----- End Your Code Here -----;
RET
;Outputs single-digit number to the display
;R2 contains number to print
printNum
;----- Your Code Here -----;
ADD R0, R2, #0
OUT
; Use LC-3 I/O device to output the character
;----- End Your Code Here -----;
RET
;Outputs a comma and a space
;No data is passed in and no data is returned
printCommaSpace
;----- Your Code Here -----;
LEA R0, ASCIIComma ; Load ASCII code for comma to R3
; Output the comma to the console
PUTC ; Use LC-3 I/O device to output the character
LEA R0, ASCIISpace ; Load ASCII code for space to R3
; Output the space to the console
PUTC ; Use LC-3 I/O device to output the character
;----- End Your Code Here -----;
RET
;End of Program
;Data Declarations-------------
DSR .FILL xFE04
DDR .FILL xFE06
Info .STRINGZ "This program will print the first 6 characters of the Fibboncci Sequence\n"
ASCIIOFSET .FILL x0030
NegASCIIOFSET .FILL xFFD0
ASCIINewline .FILL x000d ; Newline ascii code
ASCIISpace .FILL x0020 ; Space ascii code
ASCIIComma .FILL x002C ; Comma ascii code
; Memory slots for subrountines to store/restore registers
; You may or may not need to use all of these
SaveR3 .BLKW 1
SaveR4 .BLKW 1
SaveR5 .BLKW 1
SaveR6 .BLKW 1
.END
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 1 images