1 / 14

Microprocessor and Interfacing 261313

Microprocessor and Interfacing 261313. PIC Code Execution. http://www.e-cpe.org/moodle. How does the CPU executes this simple program?. void main() { int i; i = 1; i++; }. Assembly Code. MOVLW 01 BCF 03.5 MOVWF 21 INCF 21,F. Machine Code. 11000000000001 01001010000011

eydie
Download Presentation

Microprocessor and Interfacing 261313

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microprocessor and Interfacing261313 PIC Code Execution http://www.e-cpe.org/moodle

  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

  5. File Register Map

  6. Status Register (Address 03) Zero Bit = จะเป็น 0 เมื่อใดก็ตาม ที่ ALU คำนวณค่าออกมาเป็น 0

  7. The 4 Qs Q1 = Instruction Decode Q2 = Fetch Operand Q3 = Process the Data Q4 = Write Result Data

  8. Q1 Q1 Q1 Q2 Q2 Q2 Q3 Q3 Q3 Q4 Q4 Q4 Instruction Pipeline Flow Execute Fetch 1 2 3 Flash->Ins Reg Flash->Ins Reg Flash->Ins Reg time

  9. Q1 Q1 Q2 Q2 Q3 Q3 Q4 Q4 Pipeline interruption Execute Fetch Goto 3 2 3 Flash->Ins Reg Flash->Ins Reg Flash->Ins Reg time

  10. Program Execution Example .................... int i; .................... .................... i=1; 000D: MOVLW 01 000E: BCF 03.5 000F: MOVWF 21 .................... i++; 0010: INCF 21,F

  11. Converting Assembly to Machine Code MOVLW 01 BCF 03.5 MOVWF 21 INCF 21,F 11000000000001 01001010000011 00000010100001 00101010100001

  12. 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

More Related