Itech 1000
ITEC 1000 Assignment #2
Total = 100 marks (Solutions);
• 5 marks file name and general format
Instructions:
• All questions are based on Englander -- Chapters 6 & 7.
• Use a word processor (if you use a non-MS WORD compatible program, e.g., Pages, save as PDF or RTF).
• Both questions and answers must be appropriately formatted (including tables) and well presented with enough explanation.
• Be sure to name the file as your full name in the following format (lowercase), e.g., peggy_carter.docx
• Submit via the upload link provided at the course site any time before or by the deadline, March 26, 11 PM (sharp); late submissions will not be accepted.
• Apply the LMC instruction set below to answer relevant questions.
LMC Instruction Set Instruction Mnemonic Numeric Code Load LDA 5xx
Store STO 3xx
Add ADD 1xx
Subtract SUB 2xx
Input IN 901
Output OUT 902
End HLT 000
Branch/Jump BR 6xx
Branch if zero BRZ 7xx
Branch if zero or positive BRP 8xx
Data storage DAT xxx
1. Trace the program below and summarize what the program does; not a step-by-step
description of each instruction. [5 marks]
Address /
Mailbox #
Assembly /
Mnemonic
Numeric
Code
00 IN 901
01 STO 90 390
02 IN 901
03 STO 91 391
04 LDA 90 590
05 OUT 902
06 LDA 91 591
07 OUT 902
08 HLT 000
…
90 DAT 0 000
91 DAT 0 000
2. Complete the table below to construct an LMC program that will accept a set of three numbers
as INPUT and then add the first two numbers and output the answer, then subtract the first
number from the third and output the answer. The program begins at address 00 and data is
stored in address 90. [20 marks]
Mailbox # Mnemonic Numeric code Instruction Description
00 IN 901 Input first number
01
3. Complete the table below and construct an LMC program that will accept a number INPUT
and OUTPUT a sequence of numbers, starting at 1 and finishing with the INPUT
(maxNumber). The counter must be initialized to zero each time the program is run. The
program will continue (loop) until a 0 is entered. [20 marks]
Mailbox # Mnemonic
Numeric code Instruction Description
00 load zero (from 93) to the accumulator
01 Store the initial count
02 input
03 If zero, branch to halt
04 Store maxNumber
05 LoopTop load count
06 Add step to counter
07 Store count
08 Output
09 Subtract maxNumber
10 If positive, endLoop
11 Jumpt to loopTop
12 endLoop jump to start
13 Halt execution
90 step DAT 1
91 maxNumber DAT
92 count DAT
93 zero DAT
4. Complete the table below to construct an LMC program that will accept two INPUT numbers
and then OUTPUT the greater of the two. The program should begin at address 00 and data
should be stored in addresses beginning at 90. [25 marks]
Mailbox # Mnemonic Numeric code Instruction Description
5. Consider the LMC program below in which 2 numbers are entered and added.
Suppose the first input entry was stored in mailbox location 00.
a. Would the program have produced the same result? b. What would have happened if the program were executed a second time? c. What characteristic of the computer makes this true? [5 marks]
Mailbox Numeric
Address Code
00 901
01 306
02 901
03 106
04 902
05 000
06 000
6. If a computer has a 38-bit memory address register. How much memory can this computer
address? (Assume: 1 byte/cell; use the most appropriate measure unit). Show your work.
[5 marks]
Consider the following LMC instructions found in the given locations in memory.
Mailbox
Address
Mnemonic Code
15 LDA 40
16 ADD 41
…
40 723
41 021
7. Show the CPU Fetch/Execute cycle steps and the values of Instruction Register (IR), the
Program Counter (PC), the Memory Address Register (MAR), the Memory Data Register
(MDR), and Accumulator (A) when the instruction in address 15 is completed. [5 marks]
F/E cycle Register Values
8. Show the contents of each register as each step of the F/E cycle is performed for instruction
16 in the above program. [10 marks]
F/E cycle PC MAR MDR IR A
PC → MAR
MDR → IR
IR [address] → MAR
A + MDR → A
PC + 1 → PC