Objectives:
This programming project will help you
· to apply concepts learned in programming the LC-3 machine;
· to write ML operate and data movement instructions ONLY;
· to use LC3Edit for program editing; and
· to use LC-3 Simulator to debug and execute a program.
Description:
For this programming project, you will write an LC-3 ML program that will convert ASCII decimal characters stored in memory, to their corresponding two’s complement representations. After conversion, the values will be added and the results stored in memory.
Specifics:
- Your program should be written in LC-3 machine language. You may write the instructions either in binary or hexadecimal form.
- Load your program in memory address x3000.
- Assume that the ASCII representation of a two-digit decimal value is stored in a single memory location where bits [15:8] contain the tens digit value and bits [7:0] contain the ones digit value. For example, 0011 0011 0011 0100 represents the ASCII digits ‘3’ and ‘4’, which represents the decimal number 34.
- Assume that two (2) two-digit ASCII values are stored in addresses x3101 and x3102. Convert each to its decimal values, add the values and store the sum in memory address x3100.
- Overwrite the stored ASCII values with the converted decimal values in memory.
Example:
Address | Initial Contents | Results |
x3100 | undefined | 62 = 0000 0000 0011 1110 (sum) |
x3101 | ‘24’ = 0011 0010 0011 0100 | 24 = 0000 0000 0001 1000 |
x3102 | ‘38’ = 0011 0011 0011 1000 | 38 = 0000 0000 0010 0110 |
EC +5points: Use all three addressing modes at least once.