This lab is scheduled for the week of 26 March - 30 March.
This week we'll look at:
Start off by creating and then connecting to a directory called csci/255/lab9. Copy your last week's lab8.asm program into this directory. Be sure to include the period at the end of the third command!
At the end of this lab you must have a directory called csci/255/lab9 containing two files, lab8.asm and lab9.asm. Those files must contain legal LC-2 assembly language programs.
Your team should have received a printout of a test run of your Lab 8 program. If you did not bring that printout to class, go and get it now. If your program passed all test cases with no problems, you can go on to the next section. If it didn't pass all the test cases, fix it your lab8.asm program.
Start the second part of the lab by copying into your lab9 directory an instructor-provided lab9.asm file.
This incomplete program contains a main routine that prompts the user for a decimal number and prints that number in hexadecimal.
You have to complete the program.
The program calls two functions readdec
and prnthex
, presently
implemented so that they do nothing but return.
The specifications of readdec
and
prnthex
are given by
comments embedded within the code. We'll
include those comments below:
;;;; **** readdec ****
;; Purpose:
;; readdec reads and echoes a single character typed at the console.
;; It tests the input character and sets R0 and R1 according to the
;; following three cases:
;; 1) if the input character is an ASCII decimal digit ('0' to '9')
;; R0 is set to 0
;; R1 is set to the binary equivalent of the input digit (0 to 9)
;; 2) if the input character is not a decimal digit
;; R0 is set to -1
;; R1 is undefined
;;
;; Except for R0 and R1, readdec restores all registers it modifies
;;;; **** prnthex ****
;; Purpose:
;; prnthex receives a single argument stored in register R0.
;; prnthex examines the least significant (bottom) four bits
;; of that argument as a hexadecimal digit from 0 to 15.
;; prnthex returns in register R0, the common printable ASCII
;; equivalent of the hex digits stored in those four bits.
;; For example, if the input is xBEEF, the output is x45,
;; ASCII for 'F'. If the input is x4747, the output is x37,
;; ASCII for '7'.
;;
;; Except for R0, prnthex restores all registers it modifies
Start thinking and then start coding. About fifteen lines of code are required to implement each routine.
In writing readdec
use the getc
trap to read the single input character
and the out
trap to echo it.
When debugging your program, you may find it useful to
set breakpoints at the first instruction of
each of your routines.
Do not delete your files. Your lab instructor will examine them later. Your instructor can also verify that you have placed your code in the correct place by executing the following command on woodfin.