ARM GAS  if-else1.s 			page 1


   1              	/* --------------------------------------------------
   2              	   Define required labels for EGTAPI
   3              	   -------------------------------------------------- */
   4              	        .global main, Stop, CodeEnd, DataStart, DataEnd
   5              	        .global x, y, max
   6              	
   7              	/* --------------------------------------------------
   8              	   if ( x >= y )
   9              	      max = x;
  10              	   else
  11              	      max = y;      
  12              	   -------------------------------------------------- */
  13              		.text
  14              	main:
  15              	
  16 0000 000000E3 		movw	r0, #:lower16:x
  17 0004 000040E3 		movt	r0, #:upper16:x		// r0 = addr(x)
  18 0008 000090E5 		ldr	r0, [r0]		// r0 = x
  19              	
  20 000c 001000E3 		movw	r1, #:lower16:y
  21 0010 001040E3 		movt	r1, #:upper16:y		// r1 = addr(y)
  22 0014 001091E5 		ldr	r1, [r1]		// r1 = y
  23              	
  24 0018 010050E1 		cmp	r0, r1			// compare x ? y
  25 001c 030000BA 		blt	else			// Branch to "else" if  x < y
  26              	
  27              		// x >= y ---> max = x
  28 0020 002000E3 		movw	r2, #:lower16:max
  29 0024 002040E3 		movt	r2, #:upper16:max	// r2 = addr(max)
  30 0028 000082E5 		str	r0, [r2]		// max = x
  31              	
  32 002c 020000EA 		b	ifEnd			// Skip over the else part !!!
  33              	
  34              	else:
  35              		// x < y ---> max = y
  36 0030 002000E3 		movw	r2, #:lower16:max
  37 0034 002040E3 		movt	r2, #:upper16:max	// r2 = addr(max)
  38 0038 001082E5 		str	r1, [r2]		// max = y
  39              	
  40              	ifEnd:
  41              	
  42              	Stop:
  43              	CodeEnd:
  44 003c 0000A0E1 	    	nop
  45              	
  46              	/* --------------------------------------------------
  47              	   Begin of the permanent program variables
  48              	   -------------------------------------------------- */
  49              		.data
  50              	DataStart:
  51              	
  52 0000 11000000 	x:      .4byte  17	// Try a value > y
  53 0004 0A000000 	y:      .4byte  10	
  54 0008 00000000 	max:    .4byte  0
  55              	
  56              	DataEnd:
  57              	
ARM GAS  if-else1.s 			page 2


  58              		.end
ARM GAS  if-else1.s 			page 3


DEFINED SYMBOLS
          if-else1.s:14     .text:0000000000000000 main
          if-else1.s:42     .text:000000000000003c Stop
          if-else1.s:43     .text:000000000000003c CodeEnd
          if-else1.s:50     .data:0000000000000000 DataStart
          if-else1.s:56     .data:000000000000000c DataEnd
          if-else1.s:52     .data:0000000000000000 x
          if-else1.s:53     .data:0000000000000004 y
          if-else1.s:54     .data:0000000000000008 max
          if-else1.s:16     .text:0000000000000000 $a
          if-else1.s:34     .text:0000000000000030 else
          if-else1.s:40     .text:000000000000003c ifEnd

NO UNDEFINED SYMBOLS
