ARM Macro Assembler Page 1 1 00000000 ; ------------------------------------------------------ ------------ 2 00000000 ; -- _____ ______ _____ - 3 00000000 ; -- |_ _| | ____|/ ____| - 4 00000000 ; -- | | _ __ | |__ | (___ Institute of Embedded Systems - 5 00000000 ; -- | | | '_ \| __| \___ \ Zurich University of - 6 00000000 ; -- _| |_| | | | |____ ____) | Applied Sciences - 7 00000000 ; -- |_____|_| |_|______|_____/ 8401 Winterthur, Switz erland - 8 00000000 ; ------------------------------------------------------ ------------ 9 00000000 ; -- 10 00000000 ; -- table.s 11 00000000 ; -- 12 00000000 ; -- CT1 P04 Ein- und Ausgabe von Tabellenwerten 13 00000000 ; -- 14 00000000 ; -- $Id: table.s 800 2014-10-06 13:19:25Z ruan $ 15 00000000 ; ------------------------------------------------------ ------------ 16 00000000 ;Directives 17 00000000 PRESERVE8 18 00000000 THUMB 19 00000000 ; ------------------------------------------------------ ------------ 20 00000000 ; -- Symbolic Literals 21 00000000 ; ------------------------------------------------------ ------------ 22 00000000 60000200 ADDR_DIP_SWITCH_7_0 EQU 0x60000200 23 00000000 60000201 ADDR_DIP_SWITCH_15_8 EQU 0x60000201 24 00000000 60000203 ADDR_DIP_SWITCH_31_24 EQU 0x60000203 25 00000000 60000100 ADDR_LED_7_0 EQU 0x60000100 26 00000000 60000101 ADDR_LED_15_8 EQU 0x60000101 27 00000000 60000102 ADDR_LED_23_16 EQU 0x60000102 28 00000000 60000103 ADDR_LED_31_24 EQU 0x60000103 29 00000000 60000210 ADDR_BUTTONS EQU 0x60000210 30 00000000 31 00000000 00000001 BITMASK_KEY_T0 ARM Macro Assembler Page 2 EQU 0x01 32 00000000 0000000F BITMASK_LOWER_NIBBLE EQU 0x0F 33 00000000 34 00000000 ; ------------------------------------------------------ ------------ 35 00000000 ; -- Variables 36 00000000 ; ------------------------------------------------------ ------------ 37 00000000 AREA MyAsmVar, DATA, READWRITE 38 00000000 ; STUDENTS: To be programmed 39 00000000 40 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 store_table SPACE 16 ; reserve 16 byte ( 4 words) 41 00000010 42 00000010 43 00000010 44 00000010 45 00000010 ; END: To be programmed 46 00000010 ALIGN 47 00000010 48 00000010 ; ------------------------------------------------------ ------------ 49 00000010 ; -- myCode 50 00000010 ; ------------------------------------------------------ ------------ 51 00000010 AREA myCode, CODE, READONLY 52 00000000 53 00000000 main PROC 54 00000000 EXPORT main 55 00000000 56 00000000 readInput 57 00000000 F000 F818 BL waitForKey ; wait for key to b e pressed and relea sed 58 00000004 ; STUDENTS: To be programmed 59 00000004 ; Read Valules from Dip Switches 7-0 to R0 60 00000004 4811 LDR R0, =ADDR_DIP_SWITCH_7_0 61 00000006 7800 LDRB R0, [R0] 62 00000008 63 00000008 ; Write Values to LED 7-0 from R0 64 00000008 4911 LDR R1, =ADDR_LED_7_0 65 0000000A 7008 STRB R0, [R1] 66 0000000C 67 0000000C ; Read Index from Dip Switches 15-8 to R1 68 0000000C 4911 LDR R1, =ADDR_DIP_SWITCH_15_8 69 0000000E 7809 LDRB R1, [R1] 70 00000010 4A11 LDR R2, =BITMASK_LOWER_NIBBLE 71 00000012 4011 ANDS R1, R1, R2 72 00000014 73 00000014 74 00000014 ; Write Index to LED 15-8 from R1 ARM Macro Assembler Page 3 75 00000014 4A11 LDR R2, =ADDR_LED_15_8 76 00000016 7011 STRB R1, [R2] 77 00000018 78 00000018 ; Write Values to Store Table 79 00000018 4A11 LDR R2, =store_table 80 0000001A 5450 STRB R0, [R2, R1] 81 0000001C 82 0000001C 83 0000001C 84 0000001C ; Read Index from Dip Switches 15-8 to R1 85 0000001C ; Todo: Maskierung 86 0000001C 4811 LDR R0, =ADDR_DIP_SWITCH_31_24 87 0000001E 7800 LDRB R0, [R0] 88 00000020 490D LDR R1, =BITMASK_LOWER_NIBBLE 89 00000022 4008 ANDS R0, R0, R1 90 00000024 91 00000024 ; Write Index to LED 15-8 from R1 92 00000024 4910 LDR R1, =ADDR_LED_31_24 93 00000026 7008 STRB R0, [R1] 94 00000028 95 00000028 ; Read Values from Store Table 96 00000028 490D LDR R1, =store_table 97 0000002A 5C08 LDRB R0, [R1, R0] 98 0000002C 99 0000002C ; Write Values to LED 7-0 from R0 100 0000002C 490F LDR R1, =ADDR_LED_23_16 101 0000002E 7008 STRB R0, [R1] 102 00000030 103 00000030 104 00000030 ; END: To be programmed 105 00000030 E7E6 B readInput 106 00000032 00 00 ALIGN 107 00000034 108 00000034 ; ------------------------------------------------------ ------------ 109 00000034 ; Subroutines 110 00000034 ; ------------------------------------------------------ ------------ 111 00000034 112 00000034 ; wait for key to be pressed and released 113 00000034 waitForKey 114 00000034 B407 PUSH {R0, R1, R2} 115 00000036 490E LDR R1, =ADDR_BUTTONS ; laod base a ddress of keys 116 00000038 4A0E LDR R2, =BITMASK_KEY_T0 ; load key mask T0 117 0000003A 118 0000003A waitForPress 119 0000003A 7808 LDRB R0, [R1] ; load key values 120 0000003C 4210 TST R0, R2 ; check, if key T0 is pressed 121 0000003E D0FC BEQ waitForPress 122 00000040 123 00000040 waitForRelease 124 00000040 7808 LDRB R0, [R1] ; load key values 125 00000042 4210 TST R0, R2 ; check, if key T0 is released 126 00000044 D1FC BNE waitForRelease 127 00000046 ARM Macro Assembler Page 4 128 00000046 BC07 POP {R0, R1, R2} 129 00000048 4770 BX LR 130 0000004A 00 00 ALIGN 131 0000004C 132 0000004C ; ------------------------------------------------------ ------------ 133 0000004C ; End of code 134 0000004C ; ------------------------------------------------------ ------------ 135 0000004C ENDP 136 0000004C END 60000200 60000100 60000201 0000000F 60000101 00000000 60000203 60000103 60000102 60000210 00000001 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M0 --depend=.\bu ild\table.d -o.\build\table.o -I.\RTE\_Target_1 -IC:\Users\roman\AppData\Local\ Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include -IC:\Users\roman\AppData\Loca l\Arm\Packs\InES\CTBoard14_DFP\4.0.2\Device\Include\m0 -IC:\Users\roman\AppData \Local\Arm\Packs\InES\CTBoard14_DFP\4.0.2\HAL\Include --predefine="__EVAL SETA 1" --predefine="__UVISION_VERSION SETA 537" --predefine="_RTE_ SETA 1" --predef ine="_RTE_ SETA 1" --list=.\build\table.lst app\table.s ARM Macro Assembler Page 1 Alphabetic symbol ordering Relocatable symbols MyAsmVar 00000000 Symbol: MyAsmVar Definitions At line 37 in file app\table.s Uses None Comment: MyAsmVar unused store_table 00000000 Symbol: store_table Definitions At line 40 in file app\table.s Uses At line 79 in file app\table.s At line 96 in file app\table.s 2 symbols ARM Macro Assembler Page 1 Alphabetic symbol ordering Relocatable symbols main 00000000 Symbol: main Definitions At line 53 in file app\table.s Uses At line 54 in file app\table.s Comment: main used once myCode 00000000 Symbol: myCode Definitions At line 51 in file app\table.s Uses None Comment: myCode unused readInput 00000000 Symbol: readInput Definitions At line 56 in file app\table.s Uses At line 105 in file app\table.s Comment: readInput used once waitForKey 00000034 Symbol: waitForKey Definitions At line 113 in file app\table.s Uses At line 57 in file app\table.s Comment: waitForKey used once waitForPress 0000003A Symbol: waitForPress Definitions At line 118 in file app\table.s Uses At line 121 in file app\table.s Comment: waitForPress used once waitForRelease 00000040 Symbol: waitForRelease Definitions At line 123 in file app\table.s Uses At line 126 in file app\table.s Comment: waitForRelease used once 6 symbols ARM Macro Assembler Page 1 Alphabetic symbol ordering Absolute symbols ADDR_BUTTONS 60000210 Symbol: ADDR_BUTTONS Definitions At line 29 in file app\table.s Uses At line 115 in file app\table.s Comment: ADDR_BUTTONS used once ADDR_DIP_SWITCH_15_8 60000201 Symbol: ADDR_DIP_SWITCH_15_8 Definitions At line 23 in file app\table.s Uses At line 68 in file app\table.s Comment: ADDR_DIP_SWITCH_15_8 used once ADDR_DIP_SWITCH_31_24 60000203 Symbol: ADDR_DIP_SWITCH_31_24 Definitions At line 24 in file app\table.s Uses At line 86 in file app\table.s Comment: ADDR_DIP_SWITCH_31_24 used once ADDR_DIP_SWITCH_7_0 60000200 Symbol: ADDR_DIP_SWITCH_7_0 Definitions At line 22 in file app\table.s Uses At line 60 in file app\table.s Comment: ADDR_DIP_SWITCH_7_0 used once ADDR_LED_15_8 60000101 Symbol: ADDR_LED_15_8 Definitions At line 26 in file app\table.s Uses At line 75 in file app\table.s Comment: ADDR_LED_15_8 used once ADDR_LED_23_16 60000102 Symbol: ADDR_LED_23_16 Definitions At line 27 in file app\table.s Uses At line 100 in file app\table.s Comment: ADDR_LED_23_16 used once ADDR_LED_31_24 60000103 Symbol: ADDR_LED_31_24 Definitions At line 28 in file app\table.s Uses At line 92 in file app\table.s Comment: ADDR_LED_31_24 used once ADDR_LED_7_0 60000100 Symbol: ADDR_LED_7_0 ARM Macro Assembler Page 2 Alphabetic symbol ordering Absolute symbols Definitions At line 25 in file app\table.s Uses At line 64 in file app\table.s Comment: ADDR_LED_7_0 used once BITMASK_KEY_T0 00000001 Symbol: BITMASK_KEY_T0 Definitions At line 31 in file app\table.s Uses At line 116 in file app\table.s Comment: BITMASK_KEY_T0 used once BITMASK_LOWER_NIBBLE 0000000F Symbol: BITMASK_LOWER_NIBBLE Definitions At line 32 in file app\table.s Uses At line 70 in file app\table.s At line 88 in file app\table.s 10 symbols 353 symbols in table