i have this code .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 -----; LD R1, #0 JSR printNum LD R2, #1 JSR printNum JSR printNum ; Print the value in R2 JSR printCommaSpace ; Print comma and space ;----- 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 -----; JSR calcNextFib JSR printNum JSR printCommaSpace ADD R6, R6, #-1 BRz Done BR MainLoop ;----- 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 -----; ST R1, SaveR3 ; Save R1 ST R2, SaveR4 ; Save R2 ADD R1, R1, R2 ; Fib1 = previous Fib2 ADD R2, R2, R1 ; Fib2 = Fib1 + Fib2 LD R2, SaveR4 ; Restore R2 LD R1, SaveR3 ; Restore R1 ; Return from subroutine ;----- End Your Code Here -----; RET ;Outputs single-digit number to the display ;R2 contains number to print printNum ;----- Your Code Here -----; LDI R0, ASCIIOFSET ; Load immediate value (ASCIIOFSET) to R3 ADD R0, R0, R2 ; Convert to ASCII ST R0, DDR ; Output to display ;----- End Your Code Here -----; RET ;Outputs a comma and a space ;No data is passed in and no data is returned printCommaSpace LDI R0, ASCIIComma ; Load ASCIIComma to R3 ST R0, DDR ; Output comma ADD R0, R0, #1 ; Increment DDR to point to the next memory location LDI R0, ASCIISpace ; Load ASCIISpace to R3 ST R0, DDR ; Output space ;----- 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 this code needs to display: This program will print the first 6 characters of the Fibboncci Sequence 0, 1, 1, 2, 3, 5, 8 so far it is only displaying This program will print the first 6 characters of the Fibboncci Sequence i am not sure why this code is not working in lc3 stimulate to display the numbers, what is wrong with this code, provide corrected code
i have this code
.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 -----;
LD R1, #0
JSR printNum
LD R2, #1
JSR printNum
JSR printNum ; Print the value in R2
JSR printCommaSpace ; Print comma and space
;----- 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 -----;
JSR calcNextFib
JSR printNum
JSR printCommaSpace
ADD R6, R6, #-1
BRz Done
BR MainLoop
;----- 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 -----;
ST R1, SaveR3 ; Save R1
ST R2, SaveR4 ; Save R2
ADD R1, R1, R2 ; Fib1 = previous Fib2
ADD R2, R2, R1 ; Fib2 = Fib1 + Fib2
LD R2, SaveR4 ; Restore R2
LD R1, SaveR3 ; Restore R1
; Return from subroutine
;----- End Your Code Here -----;
RET
;Outputs single-digit number to the display
;R2 contains number to print
printNum
;----- Your Code Here -----;
LDI R0, ASCIIOFSET ; Load immediate value (ASCIIOFSET) to R3
ADD R0, R0, R2 ; Convert to ASCII
ST R0, DDR ; Output to display
;----- End Your Code Here -----;
RET
;Outputs a comma and a space
;No data is passed in and no data is returned
printCommaSpace
LDI R0, ASCIIComma ; Load ASCIIComma to R3
ST R0, DDR ; Output comma
ADD R0, R0, #1 ; Increment DDR to point to the next memory location
LDI R0, ASCIISpace ; Load ASCIISpace to R3
ST R0, DDR ; Output space
;----- End Your Code Here -----;
RET
;End of
;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
this code needs to display:
This program will print the first 6 characters of the Fibboncci Sequence
0, 1, 1, 2, 3, 5, 8
so far it is only displaying
This program will print the first 6 characters of the Fibboncci Sequence
i am not sure why this code is not working in lc3 stimulate to display the numbers, what is wrong with this code, provide corrected code
Step by step
Solved in 4 steps with 1 images