ARM GAS  array-ldr1.s 			page 1


   1              	/* --------------------------------------------------
   2              	   Define required labels for EGTAPI
   3              	   -------------------------------------------------- */
   4              	        .global main, Stop, CodeEnd
   5              		.global DataStart, DataEnd
   6              	
   7              		.global i1, i2, s1, s2, b1, b2	
   8              	
   9              	/* --------------------------------------------------
  10              	   Access A[3] (byte), B[3] (short) and C[3] (int)
  11              	   -------------------------------------------------- */
  12              		.text
  13              	main:
  14              	// ============================================================ A[3]
  15 0000 000000E3 		movw	r0, #:lower16:A
  16 0004 000040E3 		movt	r0, #:upper16:A		// r0 = base address of array A
  17              	
  18              						// Address of A[3] = base addr + 3*1
  19 0008 D320D0E1 		ldrsb   r2, [r0, #3]		// Load A[3] into r3
  20              	
  21              	// ============================================================ B[3]
  22 000c 000000E3 	        movw    r0, #:lower16:B
  23 0010 000040E3 	        movt    r0, #:upper16:B         // r0 = base address of array B
  24              	
  25              	                                        // Address of B[3] = base addr + 3*2
  26 0014 F630D0E1 	        ldrsh   r3, [r0, #6]            // Load B[3] into r3
  27              	
  28              	// ============================================================ C[3]
  29 0018 000000E3 	        movw    r0, #:lower16:C
  30 001c 000040E3 	        movt    r0, #:upper16:C         // r0 = base address of array C
  31              	
  32              	                                        // Address of C[3] = base addr + 3*4
  33 0020 0C4090E5 	        ldr     r4, [r0, #12]           // Load C[3] into r4
  34              	
  35              	
  36              	Stop:
  37              	CodeEnd:
  38 0024 0000A0E1 	    	nop
  39              	
  40              	/* --------------------------------------------------
  41              	   Begin of the permanent program variables
  42              	   -------------------------------------------------- */
  43              		.data
  44              	DataStart:
  45              	
  46 0000 0B0C0D0E 	A:	.byte   11, 12, 13, 14, 15     // byte typed initialzied array A 
  46      0F
  47              	
  48 0005 00       		.align 1
  49 0006 6F007000 	B:	.2byte  111, 112, 113, 114, 115 // short typed initialzied array B 
  49      71007200 
  49      7300
  50              	
  51              		.align 2
  52 0010 57040000 	C:	.4byte  1111, 1112, 1113, 1114, 1115 // int typed initialzied array C 
  52      58040000 
  52      59040000 
ARM GAS  array-ldr1.s 			page 2


  52      5A040000 
  52      5B040000 
  53              	
  54              	
  55              	DataEnd:
  56              	
  57              		.end
ARM GAS  array-ldr1.s 			page 3


DEFINED SYMBOLS
        array-ldr1.s:13     .text:0000000000000000 main
        array-ldr1.s:36     .text:0000000000000024 Stop
        array-ldr1.s:37     .text:0000000000000024 CodeEnd
        array-ldr1.s:44     .data:0000000000000000 DataStart
        array-ldr1.s:55     .data:0000000000000024 DataEnd
        array-ldr1.s:46     .data:0000000000000000 A
        array-ldr1.s:15     .text:0000000000000000 $a
        array-ldr1.s:49     .data:0000000000000006 B
        array-ldr1.s:52     .data:0000000000000010 C
        array-ldr1.s:48     .data:0000000000000005 $d

UNDEFINED SYMBOLS
i1
i2
s1
s2
b1
b2
