SOFTWARE
ARCHITECTURE OF
THE 68000
Microprocessor: Notes 4
      CHAPTER OUTLINE
Assembly Language Programming
 68000 Addressing Modes
The 68000’s Instruction Set
 Subroutine and Stack
Interrupts
                        STACK
• A stack is a data structure that can be used to save and restore
   information in a last-in, first-out (LIFO) fashion.
• Even though any address register is capable of serving as a stack
  pointer, register A7 is implicitly used as the stack pointer is some
  instructions such as subroutine call and return for saving and
  retrieving certain implied operands. For the addressing mode, pre-
   decrement and post-increment are used to push and pop the
  data.
    – Push (save):      MOVE source, -(SP)
    – Pop (retrieve)    MOVE (SP)+, destination
                                       STACK           (CONT..)
•   The stack pointer always points to the top of the stack, where the last saved item is
    stored, which is also the first item to be retrieved.
                                            b                                 c
                                                             b
                      a                                b                               c
                                 a          a          a     a        a       a        a
        Stack     Push       Stack      Push      Stack     Pop   Stack      Push   Stack
         with                   with                 with           with 1             with
        nothing              1                    2                 item            2
                             item                 item                              item
                  d
                            d           d
                                                             c
                  c          c          c          c
                                                                               a
                  a          a          a          a         a        a
              Push        Stack        Pop      Stack       Pop    Stack     Pop      Stack
                             with                  with               with
                                                                                      with
                          3                     2                  1
                                                                                      nothing
                          item                  item               item
                      STACK     (CONT..)
• Example: This program read the word ‘HELLO’ and print it backward
  (‘OLLEH’)
            START   ORG        $1000
                    MOVEA      #$2000, A0
                    MOVEA      #$2010, A1
                    MOVEA      #$2020, A2
            LOOP1   MOVE.B     (A0)+, (A1)+
                    CMP.B       #0, (A0)
                    BNE        LOOP1
            LOOP2   MOVE.B     -(A1), (A2)+
                    CMP.B       #0, (A1)
                    BNE        LOOP2
                    ORG        $2000
            DATA               'HELLO',0
                    DC.B
                      SUBROUTINE
 A subroutine is a special segment of program that can be
  called for execution from any point in a program.
                                 First instruction
                                 Subroutine A
                 :
           Main Program                :
          Call subroutine A          Return
           Next instruction
                 :
                                 Subroutine B
          Call subroutine B
                                 First instruction
           Next instruction
                                        :
                 :
                                     Return
               SUBROUTIN
               E (CONT..)
 Subroutine Concept
     A program structure where one part of the
        program is called the main program.
       In addition to this, a smaller
        segment attached to the main
        program, known as a subroutine.
       The subroutine is written to provide a
        function that must be performed at
        various points in the main program.
       A return instruction must be included at the
        end of the subroutine to initiate the return
        sequence to the main program environment.
       The instructions provided to transfer
        control from the main program to a
        subroutine and return control back to
        the main program are called
        subroutine-handling instructions.
           SUBROUTINE          (CONT..)
• Subroutine control instructions
   – Jump to Subroutine (JSR), Branch to Subroutine (BSR), Return
     from Subroutine (RTS) and Return and Restore Condition codes
      (RTR).
INTERRUPT
 An interrupt is an external event which
  informs the CPU that a device needs its
  service.
 For every interrupt there must be a program
  associated with it. When an interrupt is
  invoked it is asked to run a program to
  perform a certain service. This program is
  commonly referred to as an interrupt
  service routine (ISR). The ISR is also called
  the interrupt handler. When an interrupt is
  invoked, the CPU runs the interrupt service
  routine.
 Where is the address of the interrupt service
  routine?
 For every interrupt there are allocated 4
  bytes of memory in the interrupt vector
  table. Interrupt are handled in the supervisor
  mode. It will happen when S = 1.