ARM GAS  list1.s 			page 1


   1              	
   2              		.global main, Stop, CodeEnd, DataStart, DataEnd
   3              	
   4              		.global head
   5              	
   6              	main:
   7 0000 000000E3 		movw 	r0, #:lower16:head
   8 0004 000040E3 		movt 	r0, #:upper16:head	// r0 = addr(head)
   9 0008 000090E5 		ldr	r0, [r0]		// r0 = addr(first list elem)
  10              	
  11 000c 001090E5 		ldr	r1, [r0]		// r1 = head.value 
  12              	
  13 0010 040090E5 		ldr	r0, [r0,#4]		// r0 = addr(2nd list elem) !!!
  14              	
  15 0014 002090E5 		ldr  	r2, [r0]		// r2 = head.next.value !!
  16              	
  17 0018 040090E5 		ldr	r0, [r0,#4]		// r0 = addr(3rd list elem) !!!
  18              	
  19 001c 003090E5 		ldr  	r3, [r0]		// r3 = head.next.next.value !!
  20              	
  21 0020 040090E5 		ldr	r0, [r0,#4]		// r0 = addr(4th list elem) !!!
  22              	
  23 0024 004090E5 		ldr  	r4, [r0]		// r4 = head.next.next.next.value !!
  24              	Stop:
  25 0028 0000A0E1 	    	nop
  26              	CodeEnd:
  27              	
  28              	
  29              	/* **************************************************************
  30              	   Permanent variables
  31              	   ************************************************************** */
  32              	
  33              		.data
  34              	DataStart:
  35              	
  36 0000 04000000 	head:   .word p0	// head contains the address of the first list elem
  37              				// head->[11]->[22]->[33]->[44]->[55]
  38              	
  39              	// list structure is: [value, next]
  40 0004 0B000000 	p0: .word  11, p3	// p0 contains [11, p3]
  40      1C000000 
  41 000c 21000000 	p1: .word  33, p2	// p1 contains [33, p2]
  41      14000000 
  42 0014 2C000000 	p2: .word  44, p4	// p2 contains [44, p2]
  42      24000000 
  43 001c 16000000 	p3: .word  22, p1	// p3 contains [22, p2]
  43      0C000000 
  44 0024 37000000 	p4: .word  55, 0	// p4 contains [55, p2]
  44      00000000 
  45              	
  46              	DataEnd:
  47              		.end
ARM GAS  list1.s 			page 2


DEFINED SYMBOLS
             list1.s:6      .text:0000000000000000 main
             list1.s:24     .text:0000000000000028 Stop
             list1.s:26     .text:000000000000002c CodeEnd
             list1.s:34     .data:0000000000000000 DataStart
             list1.s:46     .data:000000000000002c DataEnd
             list1.s:36     .data:0000000000000000 head
             list1.s:7      .text:0000000000000000 $a
             list1.s:40     .data:0000000000000004 p0
             list1.s:43     .data:000000000000001c p3
             list1.s:41     .data:000000000000000c p1
             list1.s:42     .data:0000000000000014 p2
             list1.s:44     .data:0000000000000024 p4

NO UNDEFINED SYMBOLS
