ARM GAS /tmp/ccy10lDC.s page 1 1 .syntax unified 2 .cpu cortex-m0 3 .fpu softvfp 4 .eabi_attribute 20, 1 @ Tag_ABI_FP_denormal 5 .eabi_attribute 21, 1 @ Tag_ABI_FP_exceptions 6 .eabi_attribute 23, 3 @ Tag_ABI_FP_number_model 7 .eabi_attribute 24, 1 @ Tag_ABI_align8_needed 8 .eabi_attribute 25, 1 @ Tag_ABI_align8_preserved 9 .eabi_attribute 26, 1 @ Tag_ABI_enum_size 10 .eabi_attribute 30, 6 @ Tag_ABI_optimization_goals 11 .eabi_attribute 34, 0 @ Tag_CPU_unaligned_access 12 .eabi_attribute 18, 4 @ Tag_ABI_PCS_wchar_t 13 .file "main.c" 14 @ GNU C11 (GNU Tools for ARM Embedded Processors) version 5.4.1 20160609 (release) [ARM/embedded-5- 15 @ compiled by GNU C version 4.7.4, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1 16 @ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 17 @ options passed: -I . -I ./inc -imultilib armv6-m 18 @ -iprefix /opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/bin/../lib/gcc/arm-none-eabi/5.4.1/ 19 @ -isysroot /opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/bin/../arm-none-eabi 20 @ -MD src/main.d -MF .dep/main.o.d -MP -MQ src/main.o -D__USES_INITFINI__ 21 @ -D RUN_FROM_FLASH=1 src/main.c -mcpu=cortex-m0 -mthumb 22 @ -auxbase-strip src/main.o -gdwarf-2 -O0 -Wall -Wstrict-prototypes 23 @ -fomit-frame-pointer -fverbose-asm 24 @ options enabled: -faggressive-loop-optimizations -fauto-inc-dec 25 @ -fchkp-check-incomplete-type -fchkp-check-read -fchkp-check-write 26 @ -fchkp-instrument-calls -fchkp-narrow-bounds -fchkp-optimize 27 @ -fchkp-store-bounds -fchkp-use-static-bounds 28 @ -fchkp-use-static-const-bounds -fchkp-use-wrappers -fcommon 29 @ -fdelete-null-pointer-checks -fdwarf2-cfi-asm -fearly-inlining 30 @ -feliminate-unused-debug-types -ffunction-cse -fgcse-lm -fgnu-runtime 31 @ -fgnu-unique -fident -finline-atomics -fira-hoist-pressure 32 @ -fira-share-save-slots -fira-share-spill-slots -fivopts 33 @ -fkeep-static-consts -fleading-underscore -flifetime-dse 34 @ -flto-odr-type-merging -fmath-errno -fmerge-debug-strings 35 @ -fomit-frame-pointer -fpeephole -fprefetch-loop-arrays 36 @ -freg-struct-return -fsched-critical-path-heuristic 37 @ -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock 38 @ -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec 39 @ -fsched-spec-insn-heuristic -fsched-stalled-insns-dep 40 @ -fsemantic-interposition -fshow-column -fsigned-zeros 41 @ -fsplit-ivs-in-unroller -fstdarg-opt -fstrict-volatile-bitfields 42 @ -fsync-libcalls -ftrapping-math -ftree-coalesce-vars -ftree-cselim 43 @ -ftree-forwprop -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon 44 @ -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop 45 @ -ftree-reassoc -ftree-scev-cprop -funit-at-a-time -fverbose-asm 46 @ -fzero-initialized-in-bss -mlittle-endian -mpic-data-is-text-relative 47 @ -msched-prolog -mthumb -mvectorize-with-neon-quad 48 49 .text 50 .Ltext0: 51 .cfi_sections .debug_frame 52 .global LED_BASE_POINTER 53 .data 54 .align 2 55 .type LED_BASE_POINTER, %object 56 .size LED_BASE_POINTER, 4 57 LED_BASE_POINTER: ARM GAS /tmp/ccy10lDC.s page 2 58 0000 00000050 .word 1342177280 59 .global SW_BASE_POINTER 60 .align 2 61 .type SW_BASE_POINTER, %object 62 .size SW_BASE_POINTER, 4 63 SW_BASE_POINTER: 64 0004 04000050 .word 1342177284 65 .global LED_BYTES 66 .align 2 67 .type LED_BYTES, %object 68 .size LED_BYTES, 4 69 LED_BYTES: 70 0008 00000050 .word 1342177280 71 .global SW_BYTES 72 .align 2 73 .type SW_BYTES, %object 74 .size SW_BYTES, 4 75 SW_BYTES: 76 000c 04000050 .word 1342177284 77 .text 78 .align 2 79 .global write_leds 80 .code 16 81 .thumb_func 82 .type write_leds, %function 83 write_leds: 84 .LFB0: 85 .file 1 "src/main.c" 1:src/main.c **** #define __MAIN_C__ 2:src/main.c **** 3:src/main.c **** #include 4:src/main.c **** 5:src/main.c **** 6:src/main.c **** 7:src/main.c **** #define AHB_LED_BASE 0x50000000 8:src/main.c **** #define AHB_SW_BASE 0x50000004 9:src/main.c **** 10:src/main.c **** // Define pointers with correct type for access to 16-bit peripherals 11:src/main.c **** volatile uint16_t* LED_BASE_POINTER = (volatile uint16_t*) AHB_LED_BASE; 12:src/main.c **** volatile uint16_t* SW_BASE_POINTER = (volatile uint16_t*) AHB_SW_BASE; 13:src/main.c **** 14:src/main.c **** // LED and Switch bytes can be addressed individually 15:src/main.c **** volatile uint8_t* LED_BYTES = (volatile uint8_t*) AHB_LED_BASE; 16:src/main.c **** volatile uint8_t* SW_BYTES = (volatile uint8_t*) AHB_SW_BASE; 17:src/main.c **** 18:src/main.c **** #include 19:src/main.c **** 20:src/main.c **** ////////////////////////////////////////////////////////////////// 21:src/main.c **** // Main Function 22:src/main.c **** ////////////////////////////////////////////////////////////////// 23:src/main.c **** 24:src/main.c **** void write_leds(uint16_t value) { 86 .loc 1 24 0 87 .cfi_startproc 88 @ args = 0, pretend = 0, frame = 8 89 @ frame_needed = 0, uses_anonymous_args = 0 90 @ link register save eliminated. ARM GAS /tmp/ccy10lDC.s page 3 91 0000 82B0 sub sp, sp, #8 @,, 92 .LCFI0: 93 .cfi_def_cfa_offset 8 94 0002 0200 movs r2, r0 @ tmp111, value 95 0004 6B46 mov r3, sp @ tmp117, 96 0006 0633 adds r3, r3, #6 @ tmp112, 97 0008 1A80 strh r2, [r3] @ tmp113, value 25:src/main.c **** 26:src/main.c **** *LED_BASE_POINTER = value; 98 .loc 1 26 0 99 000a 044B ldr r3, .L2 @ tmp114, 100 000c 1B68 ldr r3, [r3] @ D.4308, LED_BASE_POINTER 101 000e 6A46 mov r2, sp @ tmp118, 102 0010 0632 adds r2, r2, #6 @ tmp115, 103 0012 1288 ldrh r2, [r2] @ tmp116, value 104 0014 1A80 strh r2, [r3] @ tmp116, *_2 27:src/main.c **** 28:src/main.c **** } 105 .loc 1 28 0 106 0016 C046 nop 107 0018 02B0 add sp, sp, #8 @,, 108 @ sp needed @ 109 001a 7047 bx lr 110 .L3: 111 .align 2 112 .L2: 113 001c 00000000 .word LED_BASE_POINTER 114 .cfi_endproc 115 .LFE0: 116 .size write_leds, .-write_leds 117 .align 2 118 .global read_leds 119 .code 16 120 .thumb_func 121 .type read_leds, %function 122 read_leds: 123 .LFB1: 29:src/main.c **** 30:src/main.c **** uint16_t read_leds(void) { 124 .loc 1 30 0 125 .cfi_startproc 126 @ args = 0, pretend = 0, frame = 0 127 @ frame_needed = 0, uses_anonymous_args = 0 128 @ link register save eliminated. 31:src/main.c **** 32:src/main.c **** return *LED_BASE_POINTER; 129 .loc 1 32 0 130 0020 024B ldr r3, .L6 @ tmp113, 131 0022 1B68 ldr r3, [r3] @ D.4309, LED_BASE_POINTER 132 0024 1B88 ldrh r3, [r3] @ tmp114, *_2 133 0026 9BB2 uxth r3, r3 @ D.4310, tmp114 33:src/main.c **** 34:src/main.c **** } 134 .loc 1 34 0 135 0028 1800 movs r0, r3 @, 136 @ sp needed @ 137 002a 7047 bx lr ARM GAS /tmp/ccy10lDC.s page 4 138 .L7: 139 .align 2 140 .L6: 141 002c 00000000 .word LED_BASE_POINTER 142 .cfi_endproc 143 .LFE1: 144 .size read_leds, .-read_leds 145 .align 2 146 .global write_leds_low 147 .code 16 148 .thumb_func 149 .type write_leds_low, %function 150 write_leds_low: 151 .LFB2: 35:src/main.c **** 36:src/main.c **** 37:src/main.c **** void write_leds_low(uint8_t value) { 152 .loc 1 37 0 153 .cfi_startproc 154 @ args = 0, pretend = 0, frame = 8 155 @ frame_needed = 0, uses_anonymous_args = 0 156 @ link register save eliminated. 157 0030 82B0 sub sp, sp, #8 @,, 158 .LCFI1: 159 .cfi_def_cfa_offset 8 160 0032 0200 movs r2, r0 @ tmp111, value 161 0034 6B46 mov r3, sp @ tmp117, 162 0036 0733 adds r3, r3, #7 @ tmp112, 163 0038 1A70 strb r2, [r3] @ tmp113, value 38:src/main.c **** 39:src/main.c **** LED_BYTES[0] = value; 164 .loc 1 39 0 165 003a 044B ldr r3, .L9 @ tmp114, 166 003c 1B68 ldr r3, [r3] @ D.4311, LED_BYTES 167 003e 6A46 mov r2, sp @ tmp118, 168 0040 0732 adds r2, r2, #7 @ tmp115, 169 0042 1278 ldrb r2, [r2] @ tmp116, value 170 0044 1A70 strb r2, [r3] @ tmp116, *_2 40:src/main.c **** 41:src/main.c **** } 171 .loc 1 41 0 172 0046 C046 nop 173 0048 02B0 add sp, sp, #8 @,, 174 @ sp needed @ 175 004a 7047 bx lr 176 .L10: 177 .align 2 178 .L9: 179 004c 00000000 .word LED_BYTES 180 .cfi_endproc 181 .LFE2: 182 .size write_leds_low, .-write_leds_low 183 .align 2 184 .global write_leds_high 185 .code 16 186 .thumb_func 187 .type write_leds_high, %function ARM GAS /tmp/ccy10lDC.s page 5 188 write_leds_high: 189 .LFB3: 42:src/main.c **** 43:src/main.c **** 44:src/main.c **** void write_leds_high(uint8_t value) { 190 .loc 1 44 0 191 .cfi_startproc 192 @ args = 0, pretend = 0, frame = 8 193 @ frame_needed = 0, uses_anonymous_args = 0 194 @ link register save eliminated. 195 0050 82B0 sub sp, sp, #8 @,, 196 .LCFI2: 197 .cfi_def_cfa_offset 8 198 0052 0200 movs r2, r0 @ tmp112, value 199 0054 6B46 mov r3, sp @ tmp118, 200 0056 0733 adds r3, r3, #7 @ tmp113, 201 0058 1A70 strb r2, [r3] @ tmp114, value 45:src/main.c **** 46:src/main.c **** LED_BYTES[1] = value; 202 .loc 1 46 0 203 005a 054B ldr r3, .L12 @ tmp115, 204 005c 1B68 ldr r3, [r3] @ D.4312, LED_BYTES 205 005e 0133 adds r3, r3, #1 @ D.4312, 206 0060 6A46 mov r2, sp @ tmp119, 207 0062 0732 adds r2, r2, #7 @ tmp116, 208 0064 1278 ldrb r2, [r2] @ tmp117, value 209 0066 1A70 strb r2, [r3] @ tmp117, *_3 47:src/main.c **** 48:src/main.c **** } 210 .loc 1 48 0 211 0068 C046 nop 212 006a 02B0 add sp, sp, #8 @,, 213 @ sp needed @ 214 006c 7047 bx lr 215 .L13: 216 006e C046 .align 2 217 .L12: 218 0070 00000000 .word LED_BYTES 219 .cfi_endproc 220 .LFE3: 221 .size write_leds_high, .-write_leds_high 222 .align 2 223 .global read_switches 224 .code 16 225 .thumb_func 226 .type read_switches, %function 227 read_switches: 228 .LFB4: 49:src/main.c **** 50:src/main.c **** uint16_t read_switches(void) { 229 .loc 1 50 0 230 .cfi_startproc 231 @ args = 0, pretend = 0, frame = 0 232 @ frame_needed = 0, uses_anonymous_args = 0 233 @ link register save eliminated. 51:src/main.c **** 52:src/main.c **** return *SW_BASE_POINTER; ARM GAS /tmp/ccy10lDC.s page 6 234 .loc 1 52 0 235 0074 024B ldr r3, .L16 @ tmp113, 236 0076 1B68 ldr r3, [r3] @ D.4313, SW_BASE_POINTER 237 0078 1B88 ldrh r3, [r3] @ tmp114, *_2 238 007a 9BB2 uxth r3, r3 @ D.4314, tmp114 53:src/main.c **** 54:src/main.c **** } 239 .loc 1 54 0 240 007c 1800 movs r0, r3 @, 241 @ sp needed @ 242 007e 7047 bx lr 243 .L17: 244 .align 2 245 .L16: 246 0080 00000000 .word SW_BASE_POINTER 247 .cfi_endproc 248 .LFE4: 249 .size read_switches, .-read_switches 250 .align 2 251 .global read_switches_low 252 .code 16 253 .thumb_func 254 .type read_switches_low, %function 255 read_switches_low: 256 .LFB5: 55:src/main.c **** 56:src/main.c **** 57:src/main.c **** uint16_t read_switches_low(void) { 257 .loc 1 57 0 258 .cfi_startproc 259 @ args = 0, pretend = 0, frame = 0 260 @ frame_needed = 0, uses_anonymous_args = 0 261 @ link register save eliminated. 58:src/main.c **** 59:src/main.c **** return SW_BYTES[0]; 262 .loc 1 59 0 263 0084 034B ldr r3, .L20 @ tmp114, 264 0086 1B68 ldr r3, [r3] @ D.4315, SW_BYTES 265 0088 1B78 ldrb r3, [r3] @ tmp115, *_2 266 008a DBB2 uxtb r3, r3 @ D.4316, tmp115 267 008c 9BB2 uxth r3, r3 @ D.4317, D.4316 60:src/main.c **** 61:src/main.c **** } 268 .loc 1 61 0 269 008e 1800 movs r0, r3 @, 270 @ sp needed @ 271 0090 7047 bx lr 272 .L21: 273 0092 C046 .align 2 274 .L20: 275 0094 00000000 .word SW_BYTES 276 .cfi_endproc 277 .LFE5: 278 .size read_switches_low, .-read_switches_low 279 .align 2 280 .global read_switches_high 281 .code 16 ARM GAS /tmp/ccy10lDC.s page 7 282 .thumb_func 283 .type read_switches_high, %function 284 read_switches_high: 285 .LFB6: 62:src/main.c **** 63:src/main.c **** 64:src/main.c **** uint16_t read_switches_high(void) { 286 .loc 1 64 0 287 .cfi_startproc 288 @ args = 0, pretend = 0, frame = 0 289 @ frame_needed = 0, uses_anonymous_args = 0 290 @ link register save eliminated. 65:src/main.c **** 66:src/main.c **** return SW_BYTES[1]; 291 .loc 1 66 0 292 0098 034B ldr r3, .L24 @ tmp115, 293 009a 1B68 ldr r3, [r3] @ D.4318, SW_BYTES 294 009c 0133 adds r3, r3, #1 @ D.4318, 295 009e 1B78 ldrb r3, [r3] @ tmp116, *_3 296 00a0 DBB2 uxtb r3, r3 @ D.4319, tmp116 297 00a2 9BB2 uxth r3, r3 @ D.4320, D.4319 67:src/main.c **** 68:src/main.c **** } 298 .loc 1 68 0 299 00a4 1800 movs r0, r3 @, 300 @ sp needed @ 301 00a6 7047 bx lr 302 .L25: 303 .align 2 304 .L24: 305 00a8 00000000 .word SW_BYTES 306 .cfi_endproc 307 .LFE6: 308 .size read_switches_high, .-read_switches_high 309 .align 2 310 .global factorial 311 .code 16 312 .thumb_func 313 .type factorial, %function 314 factorial: 315 .LFB7: 69:src/main.c **** 70:src/main.c **** int factorial(int value) { 316 .loc 1 70 0 317 .cfi_startproc 318 @ args = 0, pretend = 0, frame = 8 319 @ frame_needed = 0, uses_anonymous_args = 0 320 00ac 00B5 push {lr} @ 321 .LCFI3: 322 .cfi_def_cfa_offset 4 323 .cfi_offset 14, -4 324 00ae 83B0 sub sp, sp, #12 @,, 325 .LCFI4: 326 .cfi_def_cfa_offset 16 327 00b0 0190 str r0, [sp, #4] @ value, value 71:src/main.c **** 72:src/main.c **** if ( value == 0 ) return 1; ARM GAS /tmp/ccy10lDC.s page 8 328 .loc 1 72 0 329 00b2 019B ldr r3, [sp, #4] @ tmp114, value 330 00b4 002B cmp r3, #0 @ tmp114, 331 00b6 01D1 bne .L27 @, 332 .loc 1 72 0 is_stmt 0 discriminator 1 333 00b8 0123 movs r3, #1 @ D.4321, 334 00ba 07E0 b .L28 @ 335 .L27: 73:src/main.c **** else return ( value * factorial(value - 1) ); 336 .loc 1 73 0 is_stmt 1 337 00bc 019B ldr r3, [sp, #4] @ tmp115, value 338 00be 013B subs r3, r3, #1 @ D.4321, 339 00c0 1800 movs r0, r3 @, D.4321 340 00c2 FFF7FEFF bl factorial @ 341 00c6 0200 movs r2, r0 @ D.4321, 342 00c8 019B ldr r3, [sp, #4] @ tmp116, value 343 00ca 5343 muls r3, r2 @ D.4321, D.4321 344 .L28: 74:src/main.c **** 75:src/main.c **** } 345 .loc 1 75 0 346 00cc 1800 movs r0, r3 @, 347 00ce 03B0 add sp, sp, #12 @,, 348 @ sp needed @ 349 00d0 00BD pop {pc} 350 .cfi_endproc 351 .LFE7: 352 .size factorial, .-factorial 353 00d2 C046 .align 2 354 .global delay_loop 355 .code 16 356 .thumb_func 357 .type delay_loop, %function 358 delay_loop: 359 .LFB8: 76:src/main.c **** 77:src/main.c **** void delay_loop(int value) { 360 .loc 1 77 0 361 .cfi_startproc 362 @ args = 0, pretend = 0, frame = 16 363 @ frame_needed = 0, uses_anonymous_args = 0 364 @ link register save eliminated. 365 00d4 84B0 sub sp, sp, #16 @,, 366 .LCFI5: 367 .cfi_def_cfa_offset 16 368 00d6 0190 str r0, [sp, #4] @ value, value 78:src/main.c **** 79:src/main.c **** volatile int i; 80:src/main.c **** for ( i = 1; i <= value; i++ ) 369 .loc 1 80 0 370 00d8 0123 movs r3, #1 @ tmp113, 371 00da 0393 str r3, [sp, #12] @ tmp113, i 372 00dc 02E0 b .L30 @ 373 .L31: 374 .loc 1 80 0 is_stmt 0 discriminator 3 375 00de 039B ldr r3, [sp, #12] @ D.4322, i 376 00e0 0133 adds r3, r3, #1 @ D.4322, ARM GAS /tmp/ccy10lDC.s page 9 377 00e2 0393 str r3, [sp, #12] @ D.4322, i 378 .L30: 379 .loc 1 80 0 discriminator 1 380 00e4 039A ldr r2, [sp, #12] @ D.4322, i 381 00e6 019B ldr r3, [sp, #4] @ tmp114, value 382 00e8 9A42 cmp r2, r3 @ D.4322, tmp114 383 00ea F8DD ble .L31 @, 81:src/main.c **** {}; 82:src/main.c **** 83:src/main.c **** } 384 .loc 1 83 0 is_stmt 1 385 00ec C046 nop 386 00ee 04B0 add sp, sp, #16 @,, 387 @ sp needed @ 388 00f0 7047 bx lr 389 .cfi_endproc 390 .LFE8: 391 .size delay_loop, .-delay_loop 392 00f2 C046 .align 2 393 .global main 394 .code 16 395 .thumb_func 396 .type main, %function 397 main: 398 .LFB9: 84:src/main.c **** 85:src/main.c **** 86:src/main.c **** int main(void) { 399 .loc 1 86 0 400 .cfi_startproc 401 @ args = 0, pretend = 0, frame = 8 402 @ frame_needed = 0, uses_anonymous_args = 0 403 00f4 00B5 push {lr} @ 404 .LCFI6: 405 .cfi_def_cfa_offset 4 406 .cfi_offset 14, -4 407 00f6 83B0 sub sp, sp, #12 @,, 408 .LCFI7: 409 .cfi_def_cfa_offset 16 87:src/main.c **** 88:src/main.c **** int fact_in; 89:src/main.c **** 90:src/main.c **** write_leds( 0xA5A5 ); 410 .loc 1 90 0 411 00f8 194B ldr r3, .L37 @ tmp121, 412 00fa 1800 movs r0, r3 @, tmp121 413 00fc FFF7FEFF bl write_leds @ 91:src/main.c **** 92:src/main.c **** while( read_switches() != 0xFFFF ){ 414 .loc 1 92 0 415 0100 0DE0 b .L33 @ 416 .L34: 93:src/main.c **** write_leds_low( read_switches_high() ); 417 .loc 1 93 0 418 0102 FFF7FEFF bl read_switches_high @ 419 0106 0300 movs r3, r0 @ tmp122, 420 0108 DBB2 uxtb r3, r3 @ D.4324, D.4323 ARM GAS /tmp/ccy10lDC.s page 10 421 010a 1800 movs r0, r3 @, D.4324 422 010c FFF7FEFF bl write_leds_low @ 94:src/main.c **** write_leds_high( read_switches_low() ); 423 .loc 1 94 0 424 0110 FFF7FEFF bl read_switches_low @ 425 0114 0300 movs r3, r0 @ tmp124, 426 0116 DBB2 uxtb r3, r3 @ D.4324, D.4323 427 0118 1800 movs r0, r3 @, D.4324 428 011a FFF7FEFF bl write_leds_high @ 429 .L33: 92:src/main.c **** write_leds_low( read_switches_high() ); 430 .loc 1 92 0 431 011e FFF7FEFF bl read_switches @ 432 0122 0300 movs r3, r0 @ tmp126, 433 0124 1A00 movs r2, r3 @ D.4323, tmp127 434 0126 0F4B ldr r3, .L37+4 @ tmp128, 435 0128 9A42 cmp r2, r3 @ D.4323, tmp128 436 012a EAD1 bne .L34 @, 95:src/main.c **** } 96:src/main.c **** 97:src/main.c **** write_leds( 0xA815 ); 437 .loc 1 97 0 438 012c 0E4B ldr r3, .L37+8 @ tmp129, 439 012e 1800 movs r0, r3 @, tmp129 440 0130 FFF7FEFF bl write_leds @ 98:src/main.c **** 99:src/main.c **** while( read_switches() != 0x0000 ){} 441 .loc 1 99 0 442 0134 C046 nop 443 .L35: 444 .loc 1 99 0 is_stmt 0 discriminator 1 445 0136 FFF7FEFF bl read_switches @ 446 013a 031E subs r3, r0, #0 @ tmp130,, 447 013c FBD1 bne .L35 @, 448 .L36: 100:src/main.c **** 101:src/main.c **** 102:src/main.c **** while(1){ 103:src/main.c **** fact_in = read_switches_low() & 7; 449 .loc 1 103 0 is_stmt 1 discriminator 1 450 013e FFF7FEFF bl read_switches_low @ 451 0142 0300 movs r3, r0 @ tmp132, 452 0144 1A00 movs r2, r3 @ D.4325, D.4323 453 0146 0723 movs r3, #7 @ tmp135, 454 0148 1340 ands r3, r2 @ tmp134, D.4325 455 014a 0193 str r3, [sp, #4] @ tmp134, fact_in 104:src/main.c **** write_leds( factorial(fact_in) ); 456 .loc 1 104 0 discriminator 1 457 014c 019B ldr r3, [sp, #4] @ tmp136, fact_in 458 014e 1800 movs r0, r3 @, tmp136 459 0150 FFF7FEFF bl factorial @ 460 0154 0300 movs r3, r0 @ D.4325, 461 0156 9BB2 uxth r3, r3 @ D.4323, D.4325 462 0158 1800 movs r0, r3 @, D.4323 463 015a FFF7FEFF bl write_leds @ 105:src/main.c **** } 464 .loc 1 105 0 discriminator 1 ARM GAS /tmp/ccy10lDC.s page 11 465 015e EEE7 b .L36 @ 466 .L38: 467 .align 2 468 .L37: 469 0160 A5A50000 .word 42405 470 0164 FFFF0000 .word 65535 471 0168 15A80000 .word 43029 472 .cfi_endproc 473 .LFE9: 474 .size main, .-main 475 .Letext0: 476 .file 2 "/opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/machine/_default_typ 477 .file 3 "/opt/cad/soft/arm/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/sys/_stdint.h" 478 .section .debug_info,"",%progbits 479 .Ldebug_info0: 480 0000 65020000 .4byte 0x265 481 0004 0200 .2byte 0x2 482 0006 00000000 .4byte .Ldebug_abbrev0 483 000a 04 .byte 0x4 484 000b 01 .uleb128 0x1 485 000c A1000000 .4byte .LASF29 486 0010 0C .byte 0xc 487 0011 9E010000 .4byte .LASF30 488 0015 C5010000 .4byte .LASF31 489 0019 00000000 .4byte .Ltext0 490 001d 6C010000 .4byte .Letext0 491 0021 00000000 .4byte .Ldebug_line0 492 0025 02 .uleb128 0x2 493 0026 01 .byte 0x1 494 0027 06 .byte 0x6 495 0028 18020000 .4byte .LASF0 496 002c 03 .uleb128 0x3 497 002d 22000000 .4byte .LASF3 498 0031 02 .byte 0x2 499 0032 1D .byte 0x1d 500 0033 37000000 .4byte 0x37 501 0037 02 .uleb128 0x2 502 0038 01 .byte 0x1 503 0039 08 .byte 0x8 504 003a 64000000 .4byte .LASF1 505 003e 02 .uleb128 0x2 506 003f 02 .byte 0x2 507 0040 05 .byte 0x5 508 0041 BB010000 .4byte .LASF2 509 0045 03 .uleb128 0x3 510 0046 25010000 .4byte .LASF4 511 004a 02 .byte 0x2 512 004b 2B .byte 0x2b 513 004c 50000000 .4byte 0x50 514 0050 02 .uleb128 0x2 515 0051 02 .byte 0x2 516 0052 07 .byte 0x7 517 0053 84000000 .4byte .LASF5 518 0057 02 .uleb128 0x2 519 0058 04 .byte 0x4 520 0059 05 .byte 0x5 521 005a 0F020000 .4byte .LASF6 ARM GAS /tmp/ccy10lDC.s page 12 522 005e 02 .uleb128 0x2 523 005f 04 .byte 0x4 524 0060 07 .byte 0x7 525 0061 72000000 .4byte .LASF7 526 0065 02 .uleb128 0x2 527 0066 08 .byte 0x8 528 0067 05 .byte 0x5 529 0068 90010000 .4byte .LASF8 530 006c 02 .uleb128 0x2 531 006d 08 .byte 0x8 532 006e 07 .byte 0x7 533 006f 60010000 .4byte .LASF9 534 0073 04 .uleb128 0x4 535 0074 04 .byte 0x4 536 0075 05 .byte 0x5 537 0076 696E7400 .ascii "int\000" 538 007a 02 .uleb128 0x2 539 007b 04 .byte 0x4 540 007c 07 .byte 0x7 541 007d 48010000 .4byte .LASF10 542 0081 03 .uleb128 0x3 543 0082 77010000 .4byte .LASF11 544 0086 03 .byte 0x3 545 0087 18 .byte 0x18 546 0088 2C000000 .4byte 0x2c 547 008c 03 .uleb128 0x3 548 008d 06020000 .4byte .LASF12 549 0091 03 .byte 0x3 550 0092 24 .byte 0x24 551 0093 45000000 .4byte 0x45 552 0097 05 .uleb128 0x5 553 0098 01 .byte 0x1 554 0099 50000000 .4byte .LASF13 555 009d 01 .byte 0x1 556 009e 18 .byte 0x18 557 009f 01 .byte 0x1 558 00a0 00000000 .4byte .LFB0 559 00a4 20000000 .4byte .LFE0 560 00a8 00000000 .4byte .LLST0 561 00ac 01 .byte 0x1 562 00ad C0000000 .4byte 0xc0 563 00b1 06 .uleb128 0x6 564 00b2 3A000000 .4byte .LASF15 565 00b6 01 .byte 0x1 566 00b7 18 .byte 0x18 567 00b8 8C000000 .4byte 0x8c 568 00bc 02 .byte 0x2 569 00bd 91 .byte 0x91 570 00be 7E .sleb128 -2 571 00bf 00 .byte 0 572 00c0 07 .uleb128 0x7 573 00c1 01 .byte 0x1 574 00c2 A9010000 .4byte .LASF17 575 00c6 01 .byte 0x1 576 00c7 1E .byte 0x1e 577 00c8 01 .byte 0x1 578 00c9 8C000000 .4byte 0x8c ARM GAS /tmp/ccy10lDC.s page 13 579 00cd 20000000 .4byte .LFB1 580 00d1 30000000 .4byte .LFE1 581 00d5 02 .byte 0x2 582 00d6 7D .byte 0x7d 583 00d7 00 .sleb128 0 584 00d8 01 .byte 0x1 585 00d9 05 .uleb128 0x5 586 00da 01 .byte 0x1 587 00db 24020000 .4byte .LASF14 588 00df 01 .byte 0x1 589 00e0 25 .byte 0x25 590 00e1 01 .byte 0x1 591 00e2 30000000 .4byte .LFB2 592 00e6 50000000 .4byte .LFE2 593 00ea 20000000 .4byte .LLST1 594 00ee 01 .byte 0x1 595 00ef 02010000 .4byte 0x102 596 00f3 06 .uleb128 0x6 597 00f4 3A000000 .4byte .LASF15 598 00f8 01 .byte 0x1 599 00f9 25 .byte 0x25 600 00fa 81000000 .4byte 0x81 601 00fe 02 .byte 0x2 602 00ff 91 .byte 0x91 603 0100 7F .sleb128 -1 604 0101 00 .byte 0 605 0102 05 .uleb128 0x5 606 0103 01 .byte 0x1 607 0104 40000000 .4byte .LASF16 608 0108 01 .byte 0x1 609 0109 2C .byte 0x2c 610 010a 01 .byte 0x1 611 010b 50000000 .4byte .LFB3 612 010f 74000000 .4byte .LFE3 613 0113 40000000 .4byte .LLST2 614 0117 01 .byte 0x1 615 0118 2B010000 .4byte 0x12b 616 011c 06 .uleb128 0x6 617 011d 3A000000 .4byte .LASF15 618 0121 01 .byte 0x1 619 0122 2C .byte 0x2c 620 0123 81000000 .4byte 0x81 621 0127 02 .byte 0x2 622 0128 91 .byte 0x91 623 0129 7F .sleb128 -1 624 012a 00 .byte 0 625 012b 07 .uleb128 0x7 626 012c 01 .byte 0x1 627 012d 2C000000 .4byte .LASF18 628 0131 01 .byte 0x1 629 0132 32 .byte 0x32 630 0133 01 .byte 0x1 631 0134 8C000000 .4byte 0x8c 632 0138 74000000 .4byte .LFB4 633 013c 84000000 .4byte .LFE4 634 0140 02 .byte 0x2 635 0141 7D .byte 0x7d ARM GAS /tmp/ccy10lDC.s page 14 636 0142 00 .sleb128 0 637 0143 01 .byte 0x1 638 0144 07 .uleb128 0x7 639 0145 01 .byte 0x1 640 0146 00000000 .4byte .LASF19 641 014a 01 .byte 0x1 642 014b 39 .byte 0x39 643 014c 01 .byte 0x1 644 014d 8C000000 .4byte 0x8c 645 0151 84000000 .4byte .LFB5 646 0155 98000000 .4byte .LFE5 647 0159 02 .byte 0x2 648 015a 7D .byte 0x7d 649 015b 00 .sleb128 0 650 015c 01 .byte 0x1 651 015d 07 .uleb128 0x7 652 015e 01 .byte 0x1 653 015f 35010000 .4byte .LASF20 654 0163 01 .byte 0x1 655 0164 40 .byte 0x40 656 0165 01 .byte 0x1 657 0166 8C000000 .4byte 0x8c 658 016a 98000000 .4byte .LFB6 659 016e AC000000 .4byte .LFE6 660 0172 02 .byte 0x2 661 0173 7D .byte 0x7d 662 0174 00 .sleb128 0 663 0175 01 .byte 0x1 664 0176 08 .uleb128 0x8 665 0177 01 .byte 0x1 666 0178 33020000 .4byte .LASF22 667 017c 01 .byte 0x1 668 017d 46 .byte 0x46 669 017e 01 .byte 0x1 670 017f 73000000 .4byte 0x73 671 0183 AC000000 .4byte .LFB7 672 0187 D2000000 .4byte .LFE7 673 018b 60000000 .4byte .LLST3 674 018f 01 .byte 0x1 675 0190 A3010000 .4byte 0x1a3 676 0194 06 .uleb128 0x6 677 0195 3A000000 .4byte .LASF15 678 0199 01 .byte 0x1 679 019a 46 .byte 0x46 680 019b 73000000 .4byte 0x73 681 019f 02 .byte 0x2 682 01a0 91 .byte 0x91 683 01a1 74 .sleb128 -12 684 01a2 00 .byte 0 685 01a3 05 .uleb128 0x5 686 01a4 01 .byte 0x1 687 01a5 55010000 .4byte .LASF21 688 01a9 01 .byte 0x1 689 01aa 4D .byte 0x4d 690 01ab 01 .byte 0x1 691 01ac D4000000 .4byte .LFB8 692 01b0 F2000000 .4byte .LFE8 ARM GAS /tmp/ccy10lDC.s page 15 693 01b4 8C000000 .4byte .LLST4 694 01b8 01 .byte 0x1 695 01b9 D8010000 .4byte 0x1d8 696 01bd 06 .uleb128 0x6 697 01be 3A000000 .4byte .LASF15 698 01c2 01 .byte 0x1 699 01c3 4D .byte 0x4d 700 01c4 73000000 .4byte 0x73 701 01c8 02 .byte 0x2 702 01c9 91 .byte 0x91 703 01ca 74 .sleb128 -12 704 01cb 09 .uleb128 0x9 705 01cc 6900 .ascii "i\000" 706 01ce 01 .byte 0x1 707 01cf 4F .byte 0x4f 708 01d0 D8010000 .4byte 0x1d8 709 01d4 02 .byte 0x2 710 01d5 91 .byte 0x91 711 01d6 7C .sleb128 -4 712 01d7 00 .byte 0 713 01d8 0A .uleb128 0xa 714 01d9 73000000 .4byte 0x73 715 01dd 08 .uleb128 0x8 716 01de 01 .byte 0x1 717 01df 30010000 .4byte .LASF23 718 01e3 01 .byte 0x1 719 01e4 56 .byte 0x56 720 01e5 01 .byte 0x1 721 01e6 73000000 .4byte 0x73 722 01ea F4000000 .4byte .LFB9 723 01ee 6C010000 .4byte .LFE9 724 01f2 AC000000 .4byte .LLST5 725 01f6 01 .byte 0x1 726 01f7 0A020000 .4byte 0x20a 727 01fb 0B .uleb128 0xb 728 01fc B3010000 .4byte .LASF24 729 0200 01 .byte 0x1 730 0201 58 .byte 0x58 731 0202 73000000 .4byte 0x73 732 0206 02 .byte 0x2 733 0207 91 .byte 0x91 734 0208 74 .sleb128 -12 735 0209 00 .byte 0 736 020a 0C .uleb128 0xc 737 020b 7F010000 .4byte .LASF25 738 020f 01 .byte 0x1 739 0210 0B .byte 0xb 740 0211 1C020000 .4byte 0x21c 741 0215 01 .byte 0x1 742 0216 05 .byte 0x5 743 0217 03 .byte 0x3 744 0218 00000000 .4byte LED_BASE_POINTER 745 021c 0D .uleb128 0xd 746 021d 04 .byte 0x4 747 021e 22020000 .4byte 0x222 748 0222 0A .uleb128 0xa 749 0223 8C000000 .4byte 0x8c ARM GAS /tmp/ccy10lDC.s page 16 750 0227 0C .uleb128 0xc 751 0228 12000000 .4byte .LASF26 752 022c 01 .byte 0x1 753 022d 0C .byte 0xc 754 022e 1C020000 .4byte 0x21c 755 0232 01 .byte 0x1 756 0233 05 .byte 0x5 757 0234 03 .byte 0x3 758 0235 00000000 .4byte SW_BASE_POINTER 759 0239 0C .uleb128 0xc 760 023a 97000000 .4byte .LASF27 761 023e 01 .byte 0x1 762 023f 0F .byte 0xf 763 0240 4B020000 .4byte 0x24b 764 0244 01 .byte 0x1 765 0245 05 .byte 0x5 766 0246 03 .byte 0x3 767 0247 00000000 .4byte LED_BYTES 768 024b 0D .uleb128 0xd 769 024c 04 .byte 0x4 770 024d 51020000 .4byte 0x251 771 0251 0A .uleb128 0xa 772 0252 81000000 .4byte 0x81 773 0256 0C .uleb128 0xc 774 0257 5B000000 .4byte .LASF28 775 025b 01 .byte 0x1 776 025c 10 .byte 0x10 777 025d 4B020000 .4byte 0x24b 778 0261 01 .byte 0x1 779 0262 05 .byte 0x5 780 0263 03 .byte 0x3 781 0264 00000000 .4byte SW_BYTES 782 0268 00 .byte 0 783 .section .debug_abbrev,"",%progbits 784 .Ldebug_abbrev0: 785 0000 01 .uleb128 0x1 786 0001 11 .uleb128 0x11 787 0002 01 .byte 0x1 788 0003 25 .uleb128 0x25 789 0004 0E .uleb128 0xe 790 0005 13 .uleb128 0x13 791 0006 0B .uleb128 0xb 792 0007 03 .uleb128 0x3 793 0008 0E .uleb128 0xe 794 0009 1B .uleb128 0x1b 795 000a 0E .uleb128 0xe 796 000b 11 .uleb128 0x11 797 000c 01 .uleb128 0x1 798 000d 12 .uleb128 0x12 799 000e 01 .uleb128 0x1 800 000f 10 .uleb128 0x10 801 0010 06 .uleb128 0x6 802 0011 00 .byte 0 803 0012 00 .byte 0 804 0013 02 .uleb128 0x2 805 0014 24 .uleb128 0x24 806 0015 00 .byte 0 ARM GAS /tmp/ccy10lDC.s page 17 807 0016 0B .uleb128 0xb 808 0017 0B .uleb128 0xb 809 0018 3E .uleb128 0x3e 810 0019 0B .uleb128 0xb 811 001a 03 .uleb128 0x3 812 001b 0E .uleb128 0xe 813 001c 00 .byte 0 814 001d 00 .byte 0 815 001e 03 .uleb128 0x3 816 001f 16 .uleb128 0x16 817 0020 00 .byte 0 818 0021 03 .uleb128 0x3 819 0022 0E .uleb128 0xe 820 0023 3A .uleb128 0x3a 821 0024 0B .uleb128 0xb 822 0025 3B .uleb128 0x3b 823 0026 0B .uleb128 0xb 824 0027 49 .uleb128 0x49 825 0028 13 .uleb128 0x13 826 0029 00 .byte 0 827 002a 00 .byte 0 828 002b 04 .uleb128 0x4 829 002c 24 .uleb128 0x24 830 002d 00 .byte 0 831 002e 0B .uleb128 0xb 832 002f 0B .uleb128 0xb 833 0030 3E .uleb128 0x3e 834 0031 0B .uleb128 0xb 835 0032 03 .uleb128 0x3 836 0033 08 .uleb128 0x8 837 0034 00 .byte 0 838 0035 00 .byte 0 839 0036 05 .uleb128 0x5 840 0037 2E .uleb128 0x2e 841 0038 01 .byte 0x1 842 0039 3F .uleb128 0x3f 843 003a 0C .uleb128 0xc 844 003b 03 .uleb128 0x3 845 003c 0E .uleb128 0xe 846 003d 3A .uleb128 0x3a 847 003e 0B .uleb128 0xb 848 003f 3B .uleb128 0x3b 849 0040 0B .uleb128 0xb 850 0041 27 .uleb128 0x27 851 0042 0C .uleb128 0xc 852 0043 11 .uleb128 0x11 853 0044 01 .uleb128 0x1 854 0045 12 .uleb128 0x12 855 0046 01 .uleb128 0x1 856 0047 40 .uleb128 0x40 857 0048 06 .uleb128 0x6 858 0049 9742 .uleb128 0x2117 859 004b 0C .uleb128 0xc 860 004c 01 .uleb128 0x1 861 004d 13 .uleb128 0x13 862 004e 00 .byte 0 863 004f 00 .byte 0 ARM GAS /tmp/ccy10lDC.s page 18 864 0050 06 .uleb128 0x6 865 0051 05 .uleb128 0x5 866 0052 00 .byte 0 867 0053 03 .uleb128 0x3 868 0054 0E .uleb128 0xe 869 0055 3A .uleb128 0x3a 870 0056 0B .uleb128 0xb 871 0057 3B .uleb128 0x3b 872 0058 0B .uleb128 0xb 873 0059 49 .uleb128 0x49 874 005a 13 .uleb128 0x13 875 005b 02 .uleb128 0x2 876 005c 0A .uleb128 0xa 877 005d 00 .byte 0 878 005e 00 .byte 0 879 005f 07 .uleb128 0x7 880 0060 2E .uleb128 0x2e 881 0061 00 .byte 0 882 0062 3F .uleb128 0x3f 883 0063 0C .uleb128 0xc 884 0064 03 .uleb128 0x3 885 0065 0E .uleb128 0xe 886 0066 3A .uleb128 0x3a 887 0067 0B .uleb128 0xb 888 0068 3B .uleb128 0x3b 889 0069 0B .uleb128 0xb 890 006a 27 .uleb128 0x27 891 006b 0C .uleb128 0xc 892 006c 49 .uleb128 0x49 893 006d 13 .uleb128 0x13 894 006e 11 .uleb128 0x11 895 006f 01 .uleb128 0x1 896 0070 12 .uleb128 0x12 897 0071 01 .uleb128 0x1 898 0072 40 .uleb128 0x40 899 0073 0A .uleb128 0xa 900 0074 9742 .uleb128 0x2117 901 0076 0C .uleb128 0xc 902 0077 00 .byte 0 903 0078 00 .byte 0 904 0079 08 .uleb128 0x8 905 007a 2E .uleb128 0x2e 906 007b 01 .byte 0x1 907 007c 3F .uleb128 0x3f 908 007d 0C .uleb128 0xc 909 007e 03 .uleb128 0x3 910 007f 0E .uleb128 0xe 911 0080 3A .uleb128 0x3a 912 0081 0B .uleb128 0xb 913 0082 3B .uleb128 0x3b 914 0083 0B .uleb128 0xb 915 0084 27 .uleb128 0x27 916 0085 0C .uleb128 0xc 917 0086 49 .uleb128 0x49 918 0087 13 .uleb128 0x13 919 0088 11 .uleb128 0x11 920 0089 01 .uleb128 0x1 ARM GAS /tmp/ccy10lDC.s page 19 921 008a 12 .uleb128 0x12 922 008b 01 .uleb128 0x1 923 008c 40 .uleb128 0x40 924 008d 06 .uleb128 0x6 925 008e 9642 .uleb128 0x2116 926 0090 0C .uleb128 0xc 927 0091 01 .uleb128 0x1 928 0092 13 .uleb128 0x13 929 0093 00 .byte 0 930 0094 00 .byte 0 931 0095 09 .uleb128 0x9 932 0096 34 .uleb128 0x34 933 0097 00 .byte 0 934 0098 03 .uleb128 0x3 935 0099 08 .uleb128 0x8 936 009a 3A .uleb128 0x3a 937 009b 0B .uleb128 0xb 938 009c 3B .uleb128 0x3b 939 009d 0B .uleb128 0xb 940 009e 49 .uleb128 0x49 941 009f 13 .uleb128 0x13 942 00a0 02 .uleb128 0x2 943 00a1 0A .uleb128 0xa 944 00a2 00 .byte 0 945 00a3 00 .byte 0 946 00a4 0A .uleb128 0xa 947 00a5 35 .uleb128 0x35 948 00a6 00 .byte 0 949 00a7 49 .uleb128 0x49 950 00a8 13 .uleb128 0x13 951 00a9 00 .byte 0 952 00aa 00 .byte 0 953 00ab 0B .uleb128 0xb 954 00ac 34 .uleb128 0x34 955 00ad 00 .byte 0 956 00ae 03 .uleb128 0x3 957 00af 0E .uleb128 0xe 958 00b0 3A .uleb128 0x3a 959 00b1 0B .uleb128 0xb 960 00b2 3B .uleb128 0x3b 961 00b3 0B .uleb128 0xb 962 00b4 49 .uleb128 0x49 963 00b5 13 .uleb128 0x13 964 00b6 02 .uleb128 0x2 965 00b7 0A .uleb128 0xa 966 00b8 00 .byte 0 967 00b9 00 .byte 0 968 00ba 0C .uleb128 0xc 969 00bb 34 .uleb128 0x34 970 00bc 00 .byte 0 971 00bd 03 .uleb128 0x3 972 00be 0E .uleb128 0xe 973 00bf 3A .uleb128 0x3a 974 00c0 0B .uleb128 0xb 975 00c1 3B .uleb128 0x3b 976 00c2 0B .uleb128 0xb 977 00c3 49 .uleb128 0x49 ARM GAS /tmp/ccy10lDC.s page 20 978 00c4 13 .uleb128 0x13 979 00c5 3F .uleb128 0x3f 980 00c6 0C .uleb128 0xc 981 00c7 02 .uleb128 0x2 982 00c8 0A .uleb128 0xa 983 00c9 00 .byte 0 984 00ca 00 .byte 0 985 00cb 0D .uleb128 0xd 986 00cc 0F .uleb128 0xf 987 00cd 00 .byte 0 988 00ce 0B .uleb128 0xb 989 00cf 0B .uleb128 0xb 990 00d0 49 .uleb128 0x49 991 00d1 13 .uleb128 0x13 992 00d2 00 .byte 0 993 00d3 00 .byte 0 994 00d4 00 .byte 0 995 .section .debug_loc,"",%progbits 996 .Ldebug_loc0: 997 .LLST0: 998 0000 00000000 .4byte .LFB0-.Ltext0 999 0004 02000000 .4byte .LCFI0-.Ltext0 1000 0008 0200 .2byte 0x2 1001 000a 7D .byte 0x7d 1002 000b 00 .sleb128 0 1003 000c 02000000 .4byte .LCFI0-.Ltext0 1004 0010 20000000 .4byte .LFE0-.Ltext0 1005 0014 0200 .2byte 0x2 1006 0016 7D .byte 0x7d 1007 0017 08 .sleb128 8 1008 0018 00000000 .4byte 0 1009 001c 00000000 .4byte 0 1010 .LLST1: 1011 0020 30000000 .4byte .LFB2-.Ltext0 1012 0024 32000000 .4byte .LCFI1-.Ltext0 1013 0028 0200 .2byte 0x2 1014 002a 7D .byte 0x7d 1015 002b 00 .sleb128 0 1016 002c 32000000 .4byte .LCFI1-.Ltext0 1017 0030 50000000 .4byte .LFE2-.Ltext0 1018 0034 0200 .2byte 0x2 1019 0036 7D .byte 0x7d 1020 0037 08 .sleb128 8 1021 0038 00000000 .4byte 0 1022 003c 00000000 .4byte 0 1023 .LLST2: 1024 0040 50000000 .4byte .LFB3-.Ltext0 1025 0044 52000000 .4byte .LCFI2-.Ltext0 1026 0048 0200 .2byte 0x2 1027 004a 7D .byte 0x7d 1028 004b 00 .sleb128 0 1029 004c 52000000 .4byte .LCFI2-.Ltext0 1030 0050 74000000 .4byte .LFE3-.Ltext0 1031 0054 0200 .2byte 0x2 1032 0056 7D .byte 0x7d 1033 0057 08 .sleb128 8 1034 0058 00000000 .4byte 0 ARM GAS /tmp/ccy10lDC.s page 21 1035 005c 00000000 .4byte 0 1036 .LLST3: 1037 0060 AC000000 .4byte .LFB7-.Ltext0 1038 0064 AE000000 .4byte .LCFI3-.Ltext0 1039 0068 0200 .2byte 0x2 1040 006a 7D .byte 0x7d 1041 006b 00 .sleb128 0 1042 006c AE000000 .4byte .LCFI3-.Ltext0 1043 0070 B0000000 .4byte .LCFI4-.Ltext0 1044 0074 0200 .2byte 0x2 1045 0076 7D .byte 0x7d 1046 0077 04 .sleb128 4 1047 0078 B0000000 .4byte .LCFI4-.Ltext0 1048 007c D2000000 .4byte .LFE7-.Ltext0 1049 0080 0200 .2byte 0x2 1050 0082 7D .byte 0x7d 1051 0083 10 .sleb128 16 1052 0084 00000000 .4byte 0 1053 0088 00000000 .4byte 0 1054 .LLST4: 1055 008c D4000000 .4byte .LFB8-.Ltext0 1056 0090 D6000000 .4byte .LCFI5-.Ltext0 1057 0094 0200 .2byte 0x2 1058 0096 7D .byte 0x7d 1059 0097 00 .sleb128 0 1060 0098 D6000000 .4byte .LCFI5-.Ltext0 1061 009c F2000000 .4byte .LFE8-.Ltext0 1062 00a0 0200 .2byte 0x2 1063 00a2 7D .byte 0x7d 1064 00a3 10 .sleb128 16 1065 00a4 00000000 .4byte 0 1066 00a8 00000000 .4byte 0 1067 .LLST5: 1068 00ac F4000000 .4byte .LFB9-.Ltext0 1069 00b0 F6000000 .4byte .LCFI6-.Ltext0 1070 00b4 0200 .2byte 0x2 1071 00b6 7D .byte 0x7d 1072 00b7 00 .sleb128 0 1073 00b8 F6000000 .4byte .LCFI6-.Ltext0 1074 00bc F8000000 .4byte .LCFI7-.Ltext0 1075 00c0 0200 .2byte 0x2 1076 00c2 7D .byte 0x7d 1077 00c3 04 .sleb128 4 1078 00c4 F8000000 .4byte .LCFI7-.Ltext0 1079 00c8 6C010000 .4byte .LFE9-.Ltext0 1080 00cc 0200 .2byte 0x2 1081 00ce 7D .byte 0x7d 1082 00cf 10 .sleb128 16 1083 00d0 00000000 .4byte 0 1084 00d4 00000000 .4byte 0 1085 .section .debug_aranges,"",%progbits 1086 0000 1C000000 .4byte 0x1c 1087 0004 0200 .2byte 0x2 1088 0006 00000000 .4byte .Ldebug_info0 1089 000a 04 .byte 0x4 1090 000b 00 .byte 0 1091 000c 0000 .2byte 0 ARM GAS /tmp/ccy10lDC.s page 22 1092 000e 0000 .2byte 0 1093 0010 00000000 .4byte .Ltext0 1094 0014 6C010000 .4byte .Letext0-.Ltext0 1095 0018 00000000 .4byte 0 1096 001c 00000000 .4byte 0 1097 .section .debug_line,"",%progbits 1098 .Ldebug_line0: 1099 0000 39010000 .section .debug_str,"MS",%progbits,1 1099 0200D800 1099 00000201 1099 FB0E0D00 1099 01010101 1100 .LASF19: 1101 0000 72656164 .ascii "read_switches_low\000" 1101 5F737769 1101 74636865 1101 735F6C6F 1101 7700 1102 .LASF26: 1103 0012 53575F42 .ascii "SW_BASE_POINTER\000" 1103 4153455F 1103 504F494E 1103 54455200 1104 .LASF3: 1105 0022 5F5F7569 .ascii "__uint8_t\000" 1105 6E74385F 1105 7400 1106 .LASF18: 1107 002c 72656164 .ascii "read_switches\000" 1107 5F737769 1107 74636865 1107 7300 1108 .LASF15: 1109 003a 76616C75 .ascii "value\000" 1109 6500 1110 .LASF16: 1111 0040 77726974 .ascii "write_leds_high\000" 1111 655F6C65 1111 64735F68 1111 69676800 1112 .LASF13: 1113 0050 77726974 .ascii "write_leds\000" 1113 655F6C65 1113 647300 1114 .LASF28: 1115 005b 53575F42 .ascii "SW_BYTES\000" 1115 59544553 1115 00 1116 .LASF1: 1117 0064 756E7369 .ascii "unsigned char\000" 1117 676E6564 1117 20636861 1117 7200 1118 .LASF7: 1119 0072 6C6F6E67 .ascii "long unsigned int\000" 1119 20756E73 1119 69676E65 ARM GAS /tmp/ccy10lDC.s page 23 1119 6420696E 1119 7400 1120 .LASF5: 1121 0084 73686F72 .ascii "short unsigned int\000" 1121 7420756E 1121 7369676E 1121 65642069 1121 6E7400 1122 .LASF27: 1123 0097 4C45445F .ascii "LED_BYTES\000" 1123 42595445 1123 5300 1124 .LASF29: 1125 00a1 474E5520 .ascii "GNU C11 5.4.1 20160609 (release) [ARM/embedded-5-br" 1125 43313120 1125 352E342E 1125 31203230 1125 31363036 1126 00d4 616E6368 .ascii "anch revision 237715] -mcpu=cortex-m0 -mthumb -gdwa" 1126 20726576 1126 6973696F 1126 6E203233 1126 37373135 1127 0107 72662D32 .ascii "rf-2 -O0 -fomit-frame-pointer\000" 1127 202D4F30 1127 202D666F 1127 6D69742D 1127 6672616D 1128 .LASF4: 1129 0125 5F5F7569 .ascii "__uint16_t\000" 1129 6E743136 1129 5F7400 1130 .LASF23: 1131 0130 6D61696E .ascii "main\000" 1131 00 1132 .LASF20: 1133 0135 72656164 .ascii "read_switches_high\000" 1133 5F737769 1133 74636865 1133 735F6869 1133 676800 1134 .LASF10: 1135 0148 756E7369 .ascii "unsigned int\000" 1135 676E6564 1135 20696E74 1135 00 1136 .LASF21: 1137 0155 64656C61 .ascii "delay_loop\000" 1137 795F6C6F 1137 6F7000 1138 .LASF9: 1139 0160 6C6F6E67 .ascii "long long unsigned int\000" 1139 206C6F6E 1139 6720756E 1139 7369676E 1139 65642069 1140 .LASF11: ARM GAS /tmp/ccy10lDC.s page 24 1141 0177 75696E74 .ascii "uint8_t\000" 1141 385F7400 1142 .LASF25: 1143 017f 4C45445F .ascii "LED_BASE_POINTER\000" 1143 42415345 1143 5F504F49 1143 4E544552 1143 00 1144 .LASF8: 1145 0190 6C6F6E67 .ascii "long long int\000" 1145 206C6F6E 1145 6720696E 1145 7400 1146 .LASF30: 1147 019e 7372632F .ascii "src/main.c\000" 1147 6D61696E 1147 2E6300 1148 .LASF17: 1149 01a9 72656164 .ascii "read_leds\000" 1149 5F6C6564 1149 7300 1150 .LASF24: 1151 01b3 66616374 .ascii "fact_in\000" 1151 5F696E00 1152 .LASF2: 1153 01bb 73686F72 .ascii "short int\000" 1153 7420696E 1153 7400 1154 .LASF31: 1155 01c5 2F6C6F63 .ascii "/localusers/bim/.WWW/notes/cad/reference/ARMSoC/Exa" 1155 616C7573 1155 6572732F 1155 62696D2F 1155 2E575757 1156 01f8 6D706C65 .ascii "mple/Software\000" 1156 2F536F66 1156 74776172 1156 6500 1157 .LASF12: 1158 0206 75696E74 .ascii "uint16_t\000" 1158 31365F74 1158 00 1159 .LASF6: 1160 020f 6C6F6E67 .ascii "long int\000" 1160 20696E74 1160 00 1161 .LASF0: 1162 0218 7369676E .ascii "signed char\000" 1162 65642063 1162 68617200 1163 .LASF14: 1164 0224 77726974 .ascii "write_leds_low\000" 1164 655F6C65 1164 64735F6C 1164 6F7700 1165 .LASF22: 1166 0233 66616374 .ascii "factorial\000" ARM GAS /tmp/ccy10lDC.s page 25 1166 6F726961 1166 6C00 1167 .ident "GCC: (GNU Tools for ARM Embedded Processors) 5.4.1 20160609 (release) [ARM/embedded-5-bran ARM GAS /tmp/ccy10lDC.s page 26 DEFINED SYMBOLS *ABS*:00000000 main.c /tmp/ccy10lDC.s:57 .data:00000000 LED_BASE_POINTER /tmp/ccy10lDC.s:54 .data:00000000 $d /tmp/ccy10lDC.s:63 .data:00000004 SW_BASE_POINTER /tmp/ccy10lDC.s:69 .data:00000008 LED_BYTES /tmp/ccy10lDC.s:75 .data:0000000c SW_BYTES /tmp/ccy10lDC.s:78 .text:00000000 $t /tmp/ccy10lDC.s:83 .text:00000000 write_leds /tmp/ccy10lDC.s:113 .text:0000001c $d /tmp/ccy10lDC.s:117 .text:00000020 $t /tmp/ccy10lDC.s:122 .text:00000020 read_leds /tmp/ccy10lDC.s:141 .text:0000002c $d /tmp/ccy10lDC.s:145 .text:00000030 $t /tmp/ccy10lDC.s:150 .text:00000030 write_leds_low /tmp/ccy10lDC.s:179 .text:0000004c $d /tmp/ccy10lDC.s:183 .text:00000050 $t /tmp/ccy10lDC.s:188 .text:00000050 write_leds_high /tmp/ccy10lDC.s:218 .text:00000070 $d /tmp/ccy10lDC.s:222 .text:00000074 $t /tmp/ccy10lDC.s:227 .text:00000074 read_switches /tmp/ccy10lDC.s:246 .text:00000080 $d /tmp/ccy10lDC.s:250 .text:00000084 $t /tmp/ccy10lDC.s:255 .text:00000084 read_switches_low /tmp/ccy10lDC.s:275 .text:00000094 $d /tmp/ccy10lDC.s:279 .text:00000098 $t /tmp/ccy10lDC.s:284 .text:00000098 read_switches_high /tmp/ccy10lDC.s:305 .text:000000a8 $d /tmp/ccy10lDC.s:309 .text:000000ac $t /tmp/ccy10lDC.s:314 .text:000000ac factorial /tmp/ccy10lDC.s:358 .text:000000d4 delay_loop /tmp/ccy10lDC.s:397 .text:000000f4 main /tmp/ccy10lDC.s:469 .text:00000160 $d .debug_frame:00000010 $d NO UNDEFINED SYMBOLS