Overview - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Overview

Description:

x3200 Clear Accumulator (R2) R2 - 0 0101 010 010 1 00000 54A0. x3201 Add [R4] to Accumulator R2 - R2 R4 0001 010 010 0 00 100 1484 ... – PowerPoint PPT presentation

Number of Views:13
Avg rating:3.0/5.0
Slides: 22
Provided by: larry109
Category:

less

Transcript and Presenter's Notes

Title: Overview


1
Overview
Program in LC-3 machine language Use the
Editor Use LC-3 Simulator Trap Instruction
2
LC-3 Editor / Simulator
  • Go to Authors Web page
  • http//www.mhhe.com/patt2
  • Download
  • LC-3 Simulator Win or Unix
  • - (LC-3 Edit, LC-3 Simulate)
  • LC-3 Simulator Lab Manual

3
Sum of 12 Integers
  • Compute sum of 12 integers.
  • Numbers start at location x3100. Program starts
    at location x3000.

R1 ? x3100R3 ? 0 (Sum)R2 ? 12(count)
R20?
R4 ? MR1 R3 ? R3R4R1 ? R11 R2 ? R2-1
NO
YES
Write program
4
Sum integers from x3100 x310B
Address Instruction Comments
x3000 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 R1 ? x3100
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
x3004 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 If Z, goto x300A
x3005 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 Load next value to R4
x3006 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0 Add to R3
x3007 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1 Increment R1 (pointer)
X3008 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 Decrement R2 (counter)
x3009 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 Goto x3004
5
The Add program in binary
  • 0011000000000000 start x3000
  • 1110001011111111 R1x3100
  • 0101011011100000 R30
  • 0101010010100000 R20
  • 0001010010101100 R2R212
  • 0000010000000101 If z goto x3009
  • 0110100001000000 Load next value into R4
  • 0001011011000100 R3R3R4
  • 0001001001100001 R1R11
  • 0001010010111111 R2R2-1
  • 0000111111111010 goto x3004

6
The Add program in hex
  • 3000 start x3000
  • E2FF R1x3100
  • 56E0 R30
  • 54A0 R20
  • 14AC R2R212
  • 0405 If z goto x3009
  • D840 Load next value into R4
  • 16C4 R3R3R4
  • 1261 R1R11
  • 14BF R2R2-1
  • 0FFA goto x3004

7
The Add program Data (hex)
  • 3100 Begin data at x3100
  • 3107 Loc x3100
  • 2819
  • 0110
  • 0310
  • 0110
  • 1110
  • 11B1
  • 0019
  • 0007
  • 0004
  • 0000
  • 0000 Loc x310B

8
LC3Edit
  • Load the program into LC3Edit
  • - Store it as prog.bin for a binary file, or
  • Store it as prog.hex for a hex file
  • - Create a prog.obj file with the Editor
  • Load the data into LCEdit
  • - Store it as data.bin for a binary file, or
  • Store it as data.hex for a hex file
  • - Create a data.obj file with the Editor

9
LC-3 Simulator
  • Open LC-3 Simulator
  • - Load prog.obj
  • - Load data.obj
  • - Set breakpoint(s)
  • - Step through program

10
TRAP
  • Calls a service routine, identified by 8-bit
    trap vector.
  • When routine is done, PC is set to the
    instruction following TRAP.

vector routine
x23 input a character from the keyboard
x21 output a character to the monitor
x25 halt the program
11
TRAPS
12
Add HALT to Add program
  • Add HALT statement and run program without
    breakpoint(s)

13
Example Multiply
  • Write program to Multiply two unsigned integers
    in R4 and R5

14
Example Multiply
  • This program multiplies two unsigned integers in
    R4 and R5.

Write program
15

Program to multiply R4 x R5 and place result
in R2
x3200 Clear Accumulator (R2) R2 lt- 0 x3201
Add R4 to Accumulator R2 lt- R2 R4
x3202 Dec R5 R5 lt- R5 1 x3203 Do
again if R5 gt 0 BR p x3201 x3204 Stop
HALT
16

Program to multiply R4 x R5 and place result
in R2
Code program
17

Program to multiply R4 x R5 and place result
in R2
x3200 Clear Accumulator (R2) R2 lt- 0 0101
010 010 1 00000 54A0 x3201 Add R4 to
Accumulator R2 lt- R2 R4 0001 010 010 0 00
100 1484 x3202 Dec R5 R5 lt- R5 1 0001
101 101 1 11111 1B7F x3203 Do again if
R5 gt 0 BR p x3201 0000 001 111111101
03FD x3204 Stop HALT 1111 0000 00100101
F025
Test on Simulator
18

Write a program to place the absolute value of
the R2 in R2

How do we compute A - A if we dont have
have a subtract instruction?
19
Example - Occurrences of Inputted Char
20
Example - Occurrences of Inputted CharProgram
(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)
x3001 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 0 R3 ? Mx3102 (ptr)
x3002 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 Input to R0 (TRAP x23)
x3003 0 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 R1 ? MR3
x3004 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 R4 ? R1 4 (EOT)
x3005 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 If Z, goto x300E
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
x3009 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 If N or P, goto x300B
21
Example - Occurrences of Inputted CharProgram
(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 ? MR3
x300D 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 Goto x3004
x300E 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 R0 ? Mx3013
x300F 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 R0 ? R0 R2
x3010 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 Print R0 (TRAP x21)
x3011 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 HALT (TRAP x25)
X3012 Starting Address of File
x3013 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 ASCII x30 (0)
Write a Comment
User Comments (0)
About PowerShow.com