Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chap 4 & 5 LC-3 Computer LC-3 Instructions Chap 4 Homework – due Monday October 27 Chap 5 Homework – due Wednesday October 29 Project 2 Designs (Working.

Similar presentations


Presentation on theme: "Chap 4 & 5 LC-3 Computer LC-3 Instructions Chap 4 Homework – due Monday October 27 Chap 5 Homework – due Wednesday October 29 Project 2 Designs (Working."— Presentation transcript:

1 Chap 4 & 5 LC-3 Computer LC-3 Instructions Chap 4 Homework – due Monday October 27 Chap 5 Homework – due Wednesday October 29 Project 2 Designs (Working Schematics) – due Wednesday October 29 Project 2 Reports – due Wednesday November 5 Note: Alt PrintScreen is a good way to get a 1 page schematic with timing traces Project 1 Feedback – I would like to see more clarification/discussion of what you did and observed, especially linking the timing traces to the circuits.

2 LC-3 Memory Map (64K of 16 bit words) 256 words 23.5 K words 39.5 K words 512 words

3 The LC-3 Computer a von Neumann machine Memory PSW (Program Status Word): Bits: 15 10 9 8 2 1 0 | S| |Priority| | N| Z| P| PSW The Instruction Cycle Fetch: Next Instruction from Memory (PC)  (points to) next instruction PC  (PC) + 1 Decode: Fetched Instruction Evaluate: Instr & Address (es) (find where the data is) Fetch: Operand (s) (get data as specified) Execute: Operation Store: Result (if specified)

4 Computer Machine Instruction Formats What is IN an instruction? Operation code – what to do Input Operand(s) – where to get input operands (memory, registers) Output Operand(s) – Where to put results (memory, registers) What are the major instruction types? Data Movement (load, store, etc.) Operate (add, sub, mult, OR, AND, etc.) Control (branch, jump to subroutine, etc.)

5 LC-3 Instructions (Fig 5.3 – Appendix a) Addressing Modes Register (Operand is in one of the 8 registers) PC-relative (Operand is “offset” from where the PC points) Base + Offset (Base relative) (Operand is “offset” from the contents of a register) Immediate (Operand is in the instruction) Indirect (The “Operand” points to the real address of Operand – rather than being the operand)

6 TRAP Instruction Calls a service routine, identified by 8-bit “trap vector.” When service routine is done, PC is set to the instruction following TRAP (using RET instruction). vectorService routine x23input a character from the keyboard x21output a character to the monitor x25halt the program

7 TRAPS See page 543.

8 Example LC-3 Program Write a program to add 12 integers and store the result in a Register.

9 Compute the Sum of 12 Integers Program Program begins at location x3000. Integers begin at location x3100. R1  x3100 R3  0 (Sum) R2  12(count) R2=0? R4  M[R1] R3  R3+R4 R1  R1+1 R2  R2-1 NO YES R1: “Array” index pointer (Begin with location 3100) R3: Accumulator for the sum of integers R2: Loop counter (Count down from 12) R4: Temporary register to store next integer

10 Sum integers from x3100 – x310B AddressInstructionComments x30001 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 R1  x3100 x30010 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 R3  0 x30020 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 R2  0 x30030 0 0 1 0 1 0 0 1 0 1 0 1 1 0 0 R2  12 x30040 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1If Z, goto x300A x30050 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0Load next value to R4 x30060 0 0 1 0 1 1 0 1 1 0 0 0 1 0 0Add to R3 x30070 0 0 1 0 0 1 0 0 1 1 0 0 0 0 1Increment R1 (pointer) X30080 0 0 1 0 1 0 0 1 0 1 1 1 1 1 1 Decrement R2 (counter) x30090 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0Goto x3004 R1: “Array” index pointer (Begin with location 3100) R3: Accumulator for the sum of integers R2: Loop counter (Count down from 12) R4: Temporary register to store next integer

11 The Sum program in “binary” 0011000000000000 ;start x3000 x3000 1110001011111111 ;R1=x3100 x3001 0101011011100000 ;R3=0 x3002 0101010010100000 ;R2=0 x3003 0001010010101100 ;R2=R2+12 x3004 0000010000000101 ;If z goto x300A x3005 0110100001000000 ;Load next value into R4 x3006 0001011011000100 ;R3=R3+R4 x3007 0001001001100001 ;R1=R1+1 x3008 0001010010111111 ;R2=R2-1 x3009 0000111111111010 ;goto x3004 x300A 1111000000100101 ;halt

12 The Sum program in “hex” 3000 ;start x3000 x3000 E2FF ;R1=x3100 x3001 56E0 ;R3=0 x3002 54A0 ;R2=0 x3003 14AC ;R2=R2+12 x3004 0405 ;If z goto x300A x3005 6840 ;Load next value into R4 x3006 16C4 ;R3=R3+R4 x3007 1261 ;R1=R1+1 x3008 14BF ;R2=R2-1 x3009 0FFA ;goto x3004 x300A F025 ;halt

13 The Sum program Data in “hex” 3100 ; Begin data at x3100 x3100 0001 ; Loc x3100 x3101 0002 x3102 0004 x3103 0008 x3104 FFFF x3105 1C10 x3106 11B1 x3107 0019 x3108 0F07 x3109 0004 x310A 0A00 x310B 400F ; Loc x310B

14 LC3 Edit Enter (or Load) the program into LC3 Edit - 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 Enter (or Load) the data into LC3 Edit - 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

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

16 Simulator Screen

17 LC3 Edit


Download ppt "Chap 4 & 5 LC-3 Computer LC-3 Instructions Chap 4 Homework – due Monday October 27 Chap 5 Homework – due Wednesday October 29 Project 2 Designs (Working."

Similar presentations


Ads by Google