   1              		.file	"fish.c"
   4              		.text
   5              	Ltext0:
 162              	LC0:
 163 0000 53747269 		.ascii "String length=%d\12\0"
 163      6E67206C 
 163      656E6774 
 163      683D2564 
 163      0A00
 164              		.align 2
 165 0012 8DB42600 		.align 16
 165      0000008D 
 165      BC270000 
 165      0000
 167              	.globl _foo
 169              	_foo:
   1:fish.c        **** #include <stdio.h>
   2:fish.c        **** #include <string.h>
   3:fish.c        **** 
   4:fish.c        **** void foo ()
   5:fish.c        **** {
 171              	LM1:
 172              	LBB2:
 173 0020 56       		pushl	%esi
 174 0021 B8B43A00 		movl	$15028, %eax
 174      00
 175 0026 53       		pushl	%ebx
   6:fish.c        ****     char a[15000];
   7:fish.c        ****     a[0]=0;
   8:fish.c        ****     printf("String length=%d\n",strlen(a));
 177              	LM2:
 178 0027 8D5C2410 		leal	16(%esp), %ebx
 179 002b 89DE     		movl	%ebx, %esi
 181              	LM3:
 182 002d E8000000 		call	__alloca
 182      00
 184              	LM4:
 185 0032 89D9     		movl	%ebx, %ecx
 187              	LM5:
 188 0034 C6442410 		movb	$0, 16(%esp)
 188      00
 189 0039 8DB42600 		.align 16
 189      000000
 190              	L2:
 192              	LM6:
 193 0040 8B01     		movl	(%ecx), %eax
 194 0042 83C104   		addl	$4, %ecx
 195 0045 8D90FFFE 		leal	-16843009(%eax), %edx
 195      FEFE
 196 004b F7D0     		notl	%eax
 197 004d 21C2     		andl	%eax, %edx
 198 004f 81E28080 		andl	$-2139062144, %edx
 198      8080
 199 0055 74E9     		je	L2
 200 0057 C7042400 		movl	$LC0, (%esp)
 200      000000
 201 005e 89D0     		movl	%edx, %eax
 202 0060 C1E810   		shrl	$16, %eax
 203 0063 F7C28080 		testl	$32896, %edx
 203      0000
 204 0069 0F44D0   		cmove	%eax, %edx
 205 006c 8D4102   		leal	2(%ecx), %eax
 206 006f 0F44C8   		cmove	%eax, %ecx
 207 0072 00D2     		addb	%dl, %dl
 208 0074 83D903   		sbbl	$3, %ecx
 209 0077 29F1     		subl	%esi, %ecx
 210 0079 894C2404 		movl	%ecx, 4(%esp)
 211 007d E8000000 		call	_printf
 211      00
   9:fish.c        ****     memset( &a[0], 0xCD, 13371 );
 213              	LM7:
 214 0082 891C24   		movl	%ebx, (%esp)
 215 0085 C7442404 		movl	$205, 4(%esp)
 215      CD000000 
 216 008d C7442408 		movl	$13371, 8(%esp)
 216      3B340000 
 217 0095 E8000000 		call	_memset
 217      00
  10:fish.c        ****     a[13371]=0;
  11:fish.c        ****     printf("String length=%d\n",strlen(a));
 219              	LM8:
 220 009a 89D9     		movl	%ebx, %ecx
 222              	LM9:
 223 009c C684244B 		movb	$0, 13387(%esp)
 223      34000000 
 224 00a4 8DB60000 		.align 16
 224      00008DBF 
 224      00000000 
 225              	L4:
 227              	LM10:
 228 00b0 8B01     		movl	(%ecx), %eax
 229 00b2 83C104   		addl	$4, %ecx
 230 00b5 8D90FFFE 		leal	-16843009(%eax), %edx
 230      FEFE
 231 00bb F7D0     		notl	%eax
 232 00bd 21C2     		andl	%eax, %edx
 233 00bf 81E28080 		andl	$-2139062144, %edx
 233      8080
 234 00c5 74E9     		je	L4
 235 00c7 C7042400 		movl	$LC0, (%esp)
 235      000000
 236 00ce 89D0     		movl	%edx, %eax
 237 00d0 C1E810   		shrl	$16, %eax
 238 00d3 F7C28080 		testl	$32896, %edx
 238      0000
 239 00d9 0F44D0   		cmove	%eax, %edx
 240 00dc 8D4102   		leal	2(%ecx), %eax
 241 00df 0F44C8   		cmove	%eax, %ecx
 242 00e2 00D2     		addb	%dl, %dl
 243 00e4 83D903   		sbbl	$3, %ecx
 244 00e7 29D9     		subl	%ebx, %ecx
 245 00e9 894C2404 		movl	%ecx, 4(%esp)
 246 00ed E8000000 		call	_printf
 246      00
  12:fish.c        **** }
 248              	LM11:
 249 00f2 81C4B43A 		addl	$15028, %esp
 249      0000
 250 00f8 5B       		popl	%ebx
 251 00f9 5E       		popl	%esi
 252 00fa C3       		ret
 253              	LBE2:
 257              	Lscope0:
 260 00fb 90       		.align 2
 261 00fc 8D742600 		.align 16
 265              	.globl _main
 267              	_main:
  13:fish.c        **** 
  14:fish.c        **** int main ( int argc, char* argv[] )
  15:fish.c        **** {
 269              	LM12:
 270 0100 55       		pushl	%ebp
 271 0101 89E5     		movl	%esp, %ebp
 272 0103 83EC08   		subl	$8, %esp
 273 0106 31C0     		xorl	%eax, %eax
 274 0108 83E4F0   		andl	$-16, %esp
 275 010b E8000000 		call	__alloca
 275      00
 276 0110 E8000000 		call	___main
 276      00
  16:fish.c        ****     foo();
 278              	LM13:
 279 0115 E806FFFF 		call	_foo
 279      FF
  17:fish.c        ****     return 0;
  18:fish.c        **** }
 281              	LM14:
 282 011a 89EC     		movl	%ebp, %esp
 283 011c 31C0     		xorl	%eax, %eax
 284 011e 5D       		popl	%ebp
 285 011f C3       		ret
 286              	Lscope1:
 288              		.text
 290              	Letext:
