Download presentation
Presentation is loading. Please wait.
Published byAubrey Craig Modified over 8 years ago
1
PIC Code Execution http://mango.e-cpe.org
2
How does the CPU executes this simple program? void main() { int i; i = 1; i++; }
3
Assembly Code MOVLW 01 BCF 03.5 MOVWF 21 INCF 21,F
4
Machine Code 11000000000001 01001010000011 00000010100001 00101010100001
7
File Register Map See figure 6-5 in the handout For a complete File Register layout
8
The 4 Qs Q1 = Instruction Decode Q2 = Fetch Operand Q3 = Process the Data Q4 = Write Result Data See section 4.2, 4.3 in the handout for details
9
Instruction Pipeline Flow time Cmd1 Cmd2 Cmd3 Flash->Ins RegQ1Q2Q3Q4 Flash->Ins RegQ1Q2Q3Q4 Flash->Ins RegQ1Q2Q3Q4 FetchExecute Q1 = Instruction Decode Q2 = Fetch Operand Q3 = Process the Data Q4 = Write Result Data
10
Pipeline interruption time Q1 = Instruction Decode Q2 = Fetch Operand Q3 = Process the Data Q4 = Write Result Data Goto 3 Cmd2 Cmd3 Flash->Ins RegQ1Q2Q3Q4 Flash->Ins Reg Q1Q2Q3Q4 FetchExecute
11
Program Execution Example.................... int i;........................................ i=1; 000D: MOVLW 01 000E: BCF 03.5 000F: MOVWF 21.................... i++; 0010: INCF 21,F
12
Converting Assembly to Machine Code 11000000000001 MOVLW 01 BCF 03.5 MOVWF 21 INCF 21,F 01001010000011 00000010100001 00101010100001 Look at table 5-1 in the handout for the machine code reference
13
Program Execution Ex 2.................... int i;.................... i = 5; 000D: MOVLW 05 000E: BCF 03.5 000F: MOVWF 21.................... do {.................... i--; 0010: DECF 21,F.................... } while (i>0); 0011: MOVF 21,F 0012: BTFSS 03.2 0013: GOTO 010
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.