Uploaded by Sakhi Shokouh

LMC Little Man Computer

advertisement
Little Man Computer
• When your program gets “translated to
machine code” all 0’s & 1’s
• The translator must know the language of
the program (java) as well as the language
of the cpu – “the instruction set”
• LMC is a simple instruction set for “toy”
computer
About The LMC
• It is a model/illustration of a computer
• Created by Dr. Stuart Madnick at MIT in
1965 (he updated it in 1979)
• A fairly accurate representation of how
computers still work today.
Calculations and other operations performed by:
CPU
(Central Processing Unit)
LMC Model
LMC Schematic
123
456
00
01
02
03
04
05
95
96
97
98
99
789
05
123
500
199
500
399
123
System Counterparts
ALU
Input/output
interface
123
456
00
01
02
03
04
05
123
500
199
500
399
Control unit
95
96
97
98
99
789
123
05
Program counter
System Block Diagram
CPU
ALU
Input/output
interface
Memory
Control unit
Program counter
LMC Instruction Set
• Layout of Instructions
• 3 digits (use decimal; idea is similar in
binary)
• Think of memory as storage locations
– mailboxes that can hold one slip of
paper with 3 digits
LMC Instruction Set
• Interpretation of the 3 digit
– 1st digit = instruction called the operation
code op code for short
– 2nd and 3rd digits mailbox address (for the
most part)
– eg.
– 225 means “store into mailbox 25”
LMC Instruction Set
1
Load
2
Store
Reverse of Store: walks to the mbox
specified, copies the instruction on the
slip of paper and takes it to the
calculator and punches the number in.
walk to calculator, reads the number
there, and writes the number on a slip
of paper, walks to the mbox specified
in the instruction, and puts this slip of
paper there (replacing any paper
already there
LMC Instruction Set
3
4
5
Add
walk to mailbox address specified and
read the number there; walk to
calculator and adds it to the number
already in the calculator
Subtract similar to add but subtracts
Input
walks to the in box and picks up the
slip of paper having a 3-digit number
on it; walks over to the calculator and
enters that number
LMS Instruction Set
6
Output
7
Halt
800 Skip if
Negative
walk to calculator, reads the
number there, and writes the
number on a slip of paper, walks
to the out box and puts this slip of
paper there
stop
walk to calculator; if the value is
less than zero then walk to prog.
counter and add one to the current
value
LMS Instruction Set
801 Skip If Zero walk to calculator; if the value is
zero then walk to prog. counter
and add one to the current value
802 Skip If
walk to calculator; if the value is
Positive
greater than zero then walk to
prog. counter and add one to the
current value
9
Jump
Tells LMC to change the program
counter to the number shown on
the address portion
A program to add 2 numbers
00
01
02
03
04
05
99
500
299
500
399
600
700
input
store data
input
add
output
stop
data
A program to find positive
difference of 2 numbers
00
01
02
03
04
05
06
07
08
09
10
11
12
Input
Store 11
Input
Store 12
Subtract 11
Skp if Neg
Jmp 09
Load 11
Subtract 12
Output
Halt
Data
Data
500
211
500
212
411
800
909
111
412
600
700
000
000
Fetch, (Decode,) Execute
Instruction Cycle
• Fetch: get the next instruction as indicated by the
program counter: goes to mbox address and reads
the 3 digit code (the instruction) and then
increments the program counter
• Decode: electronically decode the instruction to
determine which operation to perform (not shown
in LMC)
• Execute: perform the instruction
• Repeat cycle until halt
Download