Lec 1
Lec 1
The LC-3
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5-2
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Registers
temporary storage, accessed in a single machine cycle
accessing memory generally takes longer than a single cycle
eight general-purpose registers: R0 - R7
each 16 bits wide
how many bits to uniquely identify a register?
other registers
not directly addressable, but used by (and affected by)
instructions
PC (program counter), condition codes
5-3
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5-4
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Operate Instructions
Only three operations: ADD, AND, NOT
5-5
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
NOT (Register)
5-7
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5-8
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
How do we OR?
5-9
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5-10
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Solution:
Use the 9 bits as a signed offset from the current PC.
LD (PC-Relative)
5-12
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
ST (PC-Relative)
5-13
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Solution #1:
Read address from memory location,
then load/store to that address.
5-14
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
LDI (Indirect)
5-15
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
STI (Indirect)
5-16
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Solution #2:
Use a register to generate a full 16-bit address.
5-17
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
LDR (Base+Offset)
5-18
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
STR (Base+Offset)
5-19
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5-20
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
LEA (Immediate)
5-21
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Example
Address Instruction Comments
x30F6 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 R1 PC 3 = x30F4
x30F7 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 R2 R1 + 14 = x3102
M[PC - 5] R2
x30F8 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1
M[x30F4] x3102
x30F9 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 R2 0
x30FA 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 R2 R2 + 5 = 5
M[R1+14] R2
x30FB 0 1 1 1 0 1 0 0 0 1 0 0 1 1 1 0
M[x3102] 5
R3 M[M[x30F4]]
x30FC 1 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 R3 M[x3102]
R3 5
opcode
5-22
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Control Instructions
Used to alter the sequence of instructions
(by changing the Program Counter)
Conditional Branch
branch is taken if a specified condition is true
signed offset is added to PC to yield new PC
else, the branch is not taken
PC is not changed, points to the next sequential instruction
TRAP
changes PC to the address of an OS service routine
routine will return control to the next instruction (after TRAP)
5-23
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Condition Codes
LC-3 has three condition code registers:
N -- negative
Z -- zero
P -- positive (greater than zero)
5-24
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Branch Instruction
Branch specifies one or more condition codes.
If the set bit is specified, the branch is taken.
PC-relative addressing:
target address is made by adding signed offset (IR[8:0])
to current PC.
Note: PC has already been incremented by FETCH stage.
Note: Target must be within 256 words of BR instruction.
5-25
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
BR (PC-Relative)
What happens if bits [11:9] are all zero? All one? 5-26
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
R1 x3100
R3 0
R2 12
R4 M[R1]
R3 R3+R4
R2=0?
NO R1 R1+1
R2 R2-1
YES
5-27
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Sample Program
Address Instruction Comments
x3001 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 R3 0
x3002 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 R2 0
x3003 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 R2 12
x3006 0 0 0 1 0 1 1 0 1 1 0 0 0 0 0 1 Add to R3
5-28
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
JMP (Register)
Jump is an unconditional branch -- always taken.
Target address is the contents of a register.
Allows any target address.
5-29
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TRAP
5-30
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Another Example
Count the occurrences of a character in a file
Program begins at location x3000
Read character from keyboard
Load each character from a file
File is a sequence of memory locations
Starting address of file is stored in the memory location
immediately after the program
If file character equals input character, increment counter
End of file is indicated by a special ASCII value: EOT (x04)
At the end, print the number of characters and halt
(assume there will be less than 10 occurrences of the character)
Flow Chart
Count = 0
(R2 = 0) YES
Convert count to
Done?
(R1 ?= EOT)
ASCII character
(R0 = x30, R0 = R2 + R0)
HALT
Incr Count (TRAP x25)
5-32
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Program (1 of 2)
Address Instruction Comments
x3000 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 R2 0 (counter)
x3003 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 R1 M[R3]
x3004 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 R4 R1 4 (EOT)
x3006 1 0 0 1 0 0 1 0 0 1 1 1 1 1 1 1 R1 NOT R1
x3007 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 R1 R1 + 1
X3008 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 R1 R1 + R0
5-33
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Program (2 of 2)
Address Instruction Comments
x300A 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 R2 R2 + 1
x300B 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 R3 R3 + 1
x300C 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 R1 M[R3]
x300E 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 R0 M[x3013]
x300F 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 R0 R0 + R2
5-34
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
LC-3
Data Path
Revisited
Filled arrow
= info to be processed.
Unfilled arrow
= control signal.
5-35
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Memory
Control and data registers for memory and I/O devices
memory: MAR, MDR (also control signal for read/write)
5-36
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Register File
Two read addresses (SR1, SR2), one write address (DR)
Input from bus
result of ALU operation or memory read
Two 16-bit outputs
used by ALU, PC, memory address
data for store instructions passes through ALU
5-37
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5-38
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.