prac_exam3_A08_sol

prac_exam3_A08_sol - Name:_ ECE2801EXAM#2ATerm2007Solutions...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Name: ________________________  Box:________ ECE2801  EXAM #2  –  A Term 2007 --  Solutions Show all work. Sign your test and all scrap paper. Circle final answer for  each part of each question. Points are as indicated.  Good Luck! 1)  Fully answer the questions below. (25 pts)   a) What is program counter (PC) and why is it important? The program counter (R0) always holds the address of the next instruction to be  fetched.  It determines the flow of execution.   b) A certain embedded system received data very infrequently from Port 1         Pin 5.  The system programmer decides to use interrupts to service the input         yet every time the Port 1 Pin 5 input is activated the system fails. Why? port1_ISR  ; Interrupt service routine for Port 1 PUSH   R5     ; pushes R5   CLR   R5 MOV.B  P1IN, R5 PUSH   R4     ;  pushes R4         MOV    #0020h,R4 AND.B  R4,R5      MOV.B  R5, pin5     ; pin4 was declared as DS8 POP    R4 ; restores R4 BUT never restores R5 it is  ; still on the stack RETI ; RETI first pops the SR then the PC ; However it is the saved R5 that pops into SR and the  ; saved SR that is popped into PC. The program would  ; then try to execute from whatever address that is  ; It can never return to the right place   c) Explain the operation of the instruction   CALL #adder   and its effect of the        stack pointer (SP) and program counter (PC). CALL #adder ; SP is decremented by 2 then the PC is placed on the  ;  stack (low byte then high byte) ; Then the address of the procedure adder is placed in ; the PC and execution continues with the first  ; instruction of that procedure
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
  d)  Find 5 different errors (or at least examples of bad programming practice) in          the code segment below   badProc ;  This  procedure  has some problems PUSH  R4 PUSH  R5 MOV   A, R5 CMP  R5, R4 JZ    exitError    ; DON'T jump out of procedures! SUB   R4, R5
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 8

prac_exam3_A08_sol - Name:_ ECE2801EXAM#2ATerm2007Solutions...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online