Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 2.44 KB | None | 0 0
  1. ; ------------------------------------------------------------------
  2. ; --  _____       ______  _____                                    -
  3. ; -- |_   _|     |  ____|/ ____|                                   -
  4. ; --   | |  _ __ | |__  | (___    Institute of Embedded Systems    -
  5. ; --   | | | '_ \|  __|  \___ \   Zurich University of             -
  6. ; --  _| |_| | | | |____ ____) |  Applied Sciences                 -
  7. ; -- |_____|_| |_|______|_____/   8401 Winterthur, Switzerland     -
  8. ; ------------------------------------------------------------------
  9. ; --
  10. ; -- sumdiff.s
  11. ; --
  12. ; -- CT1 P05 Summe und Differenz
  13. ; --
  14. ; -- $Id: sumdiff.s 705 2014-09-16 11:44:22Z muln $
  15. ; ------------------------------------------------------------------
  16. ;Directives
  17.         PRESERVE8
  18.         THUMB
  19.  
  20. ; ------------------------------------------------------------------
  21. ; -- Symbolic Literals
  22. ; ------------------------------------------------------------------
  23. ADDR_DIP_SWITCH_7_0     EQU     0x60000200
  24. ADDR_DIP_SWITCH_15_8    EQU     0x60000201
  25. ADDR_LED_7_0            EQU     0x60000100
  26. ADDR_LED_15_8           EQU     0x60000101
  27. ADDR_LED_23_16          EQU     0x60000102
  28. ADDR_LED_31_24          EQU     0x60000103
  29.  
  30. ; ------------------------------------------------------------------
  31. ; -- myCode
  32. ; ------------------------------------------------------------------
  33.         AREA MyCode, CODE, READONLY
  34.  
  35. main    PROC
  36.         EXPORT main
  37.  
  38. user_prog
  39.         ; STUDENTS: To be programmed
  40.  
  41.  
  42.         LDR     R0,=ADDR_DIP_SWITCH_15_8;
  43.         LDRB    R1,[R0]
  44.         LSLS    R1, R1, #24
  45.         ; Operand A is in R1
  46.  
  47.         LDR     R0,=ADDR_DIP_SWITCH_7_0;
  48.         LDRB    R2,[R0]
  49.         LSLS    R2, R2, #24
  50.         ; Operand B is in R2
  51.        
  52.         ADDS    R3,R1,R2
  53.         ; R3 is addition result
  54.         MRS     R4,APSR
  55.         LSRS    R4,R4,#24
  56.         ; R4 is addition flag
  57.        
  58.         SUBS    R5,R1,R2
  59.         ; R5 is subtraction result
  60.         MRS     R6,APSR
  61.         LSRS    R6,R6,#24
  62.         ; R4 is subtraction flag
  63.        
  64.        
  65.         ; Addition display
  66.         LDR     R0,=ADDR_LED_7_0
  67.         LSRS    R3,R3,#24
  68.         STRB    R3,[R0]
  69.         ; Addition flag disply
  70.         LDR     R0,=ADDR_LED_15_8
  71.         STRB    R4,[R0]
  72.        
  73.         ; Subtraction display
  74.         LDR     R0,=ADDR_LED_23_16
  75.         LSRS    R5,R5,#24
  76.         STRB    R5,[R0]
  77.         ; Subtraction flag disply
  78.         LDR     R0,=ADDR_LED_31_24
  79.         STRB    R6,[R0]
  80.  
  81.         ; END: To be programmed
  82.         B       user_prog
  83.         ALIGN
  84. ; ------------------------------------------------------------------
  85. ; End of code
  86. ; ------------------------------------------------------------------
  87.         ENDP
  88.         END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement