Write a RISC-style program that displays the name of the user backwards. The program should display a prompt requesting that the characters in the user’s name be entered on the keyboard, followed by the carriage return (CR). The program should accept a sequence of characters and store them in the main memory. It should then display a message to indicate that the user’s name will be displayed backwards, followed by the display of the characters from the user’s name in reverse order. Note: All input/output should be done using the keyboard/display unit Below is the keynoard/display unit: Move R2, #LOC ; load string address MoveByte R3, #CR ; Load Carriage Return Read: LoadByte R4, KBD_STATUS ; get status And R4, R4, #2 ; check KIN flag CmpBrZ R4, Read ; if 0, no data LoadByte R5, KBD_DATA ; get character StoreByte R5, (R2) ; save in string Add R2, R2, #1 ; increment pointer Echo: LoadByte R4, DISP_STATUS ; get display status And R4, R4, #4 ; check DOUT flag CmpBrZ R4, Echo ; if 0, wait StoreByte R5, DISP_DATA ; output character CmpBrNE R5, R3, Read ; if not CR, repeat
Write a RISC-style
Below is the keynoard/display unit:
Move R2, #LOC ; load string address
MoveByte R3, #CR ; Load Carriage Return
Read: LoadByte R4, KBD_STATUS ; get status
And R4, R4, #2 ; check KIN flag
CmpBrZ R4, Read ; if 0, no data
LoadByte R5, KBD_DATA ; get character
StoreByte R5, (R2) ; save in string
Add R2, R2, #1 ; increment pointer
Echo: LoadByte R4, DISP_STATUS ; get display status
And R4, R4, #4 ; check DOUT flag
CmpBrZ R4, Echo ; if 0, wait
StoreByte R5, DISP_DATA ; output character
CmpBrNE R5, R3, Read ; if not CR, repeat
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 1 images