view interps/egobf/src/c2m/tests/test_i386_gnuWlinux.s @ 12518:2d8fe55c6e65 draft default tip

<int-e> learn The password of the month is release incident pilot.
author HackEso <hackeso@esolangs.org>
date Sun, 03 Nov 2024 00:31:02 +0000
parents 859f9b4339e6
children
line wrap: on
line source


a.out:     file format elf32-i386

SYMBOL TABLE:
08048114 l    d  .interp	00000000              
08048128 l    d  .note.ABI-tag	00000000              
08048148 l    d  .hash	00000000              
08048170 l    d  .dynsym	00000000              
080481c0 l    d  .dynstr	00000000              
0804821a l    d  .gnu.version	00000000              
08048224 l    d  .gnu.version_r	00000000              
08048244 l    d  .rel.dyn	00000000              
0804824c l    d  .rel.plt	00000000              
08048254 l    d  .init	00000000              
0804826c l    d  .plt	00000000              
08048290 l    d  .text	00000000              
08049064 l    d  .fini	00000000              
08049080 l    d  .rodata	00000000              
08049088 l    d  .eh_frame	00000000              
0804a08c l    d  .data	00000000              
0804a098 l    d  .dynamic	00000000              
0804a160 l    d  .ctors	00000000              
0804a168 l    d  .dtors	00000000              
0804a170 l    d  .jcr	00000000              
0804a174 l    d  .got	00000000              
0804a188 l    d  .bss	00000000              
00000000 l    d  .comment	00000000              
00000000 l    d  .debug_aranges	00000000              
00000000 l    d  .debug_pubnames	00000000              
00000000 l    d  .debug_info	00000000              
00000000 l    d  .debug_abbrev	00000000              
00000000 l    d  .debug_line	00000000              
00000000 l    d  .debug_frame	00000000              
00000000 l    d  .debug_str	00000000              
00000000 l    d  *ABS*	00000000              
00000000 l    d  *ABS*	00000000              
00000000 l    d  *ABS*	00000000              
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/config.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              <built-in>
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/csu//
00000000 l    df *ABS*	00000000              abi-note.S
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/abi-tag.h
00000000 l    df *ABS*	00000000              abi-note.S
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/config.h
00000000 l    df *ABS*	00000000              abi-note.S
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/config.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              <built-in>
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/csu//
00000000 l    df *ABS*	00000000              abi-note.S
00000000 l    df *ABS*	00000000              init.c
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/crti.S
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/defs.h
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/defs.h
00000000 l    df *ABS*	00000000              initfini.c
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/crti.S
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/config.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              <built-in>
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/crti.S
080482b4 l     F .text	00000000              call_gmon_start
00000000 l    df *ABS*	00000000              crtstuff.c
0804a160 l     O .ctors	00000000              __CTOR_LIST__
0804a168 l     O .dtors	00000000              __DTOR_LIST__
0804a170 l     O .jcr	00000000              __JCR_LIST__
0804a094 l     O .data	00000000              p.0
0804a188 l     O .bss	00000001              completed.1
080482e0 l     F .text	00000000              __do_global_dtors_aux
08048310 l     F .text	00000000              frame_dummy
00000000 l    df *ABS*	00000000              crtstuff.c
0804a164 l     O .ctors	00000000              __CTOR_END__
0804a16c l     O .dtors	00000000              __DTOR_END__
08049088 l     O .eh_frame	00000000              __FRAME_END__
0804a170 l     O .jcr	00000000              __JCR_END__
08049040 l     F .text	00000000              __do_global_ctors_aux
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/crtn.S
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/defs.h
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/defs.h
00000000 l    df *ABS*	00000000              initfini.c
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/crtn.S
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/config.h
00000000 l    df *ABS*	00000000              ./../include/libc-symbols.h
00000000 l    df *ABS*	00000000              <command line>
00000000 l    df *ABS*	00000000              <built-in>
00000000 l    df *ABS*	00000000              /home/gb/rpm/BUILD/glibc-2.3.3/build-i586-linux/csu/crtn.S
00000000 l    df *ABS*	00000000              test.c
0804a098 g     O .dynamic	00000000              _DYNAMIC
08049080 g     O .rodata	00000004              _fp_hw
0804835f g     F .text	00000005              myputchar
0804a08c g       *ABS*	00000000              __fini_array_end
0804a090 g     O .data	00000000              .hidden __dso_handle
08049000 g     F .text	0000003e              __libc_csu_fini
08048254 g     F .init	00000000              _init
08048364 g     F .text	00000c46              test
08048290 g     F .text	00000000              _start
0804a18c g     O .bss	00000004              mem
0804a190 g     O .bss	00000004              mptr
0804a08c g       *ABS*	00000000              __fini_array_start
08048fb0 g     F .text	00000050              __libc_csu_init
0804a188 g       *ABS*	00000000              __bss_start
0804833c g     F .text	0000001e              main
00000000       F *UND*	000000db              __libc_start_main@@GLIBC_2.0
0804a08c g       *ABS*	00000000              __init_array_end
0804a08c  w      .data	00000000              data_start
08049064 g     F .fini	00000000              _fini
0804835a g     F .text	00000005              mygetchar
0804a188 g       *ABS*	00000000              _edata
0804a174 g     O .got	00000000              _GLOBAL_OFFSET_TABLE_
0804a194 g       *ABS*	00000000              _end
0804a08c g       *ABS*	00000000              __init_array_start
08049084 g     O .rodata	00000004              _IO_stdin_used
0804a08c g       .data	00000000              __data_start
00000000  w      *UND*	00000000              _Jv_RegisterClasses
00000000  w      *UND*	00000000              __gmon_start__


Disassembly of section .init:

08048254 <_init>:
 8048254:	55                   	push   %ebp
 8048255:	89 e5                	mov    %esp,%ebp
 8048257:	83 ec 08             	sub    $0x8,%esp
 804825a:	e8 55 00 00 00       	call   80482b4 <call_gmon_start>
 804825f:	e8 ac 00 00 00       	call   8048310 <frame_dummy>
 8048264:	e8 d7 0d 00 00       	call   8049040 <__do_global_ctors_aux>
 8048269:	c9                   	leave  
 804826a:	c3                   	ret    
Disassembly of section .plt:

0804826c <.plt>:
 804826c:	ff 35 78 a1 04 08    	pushl  0x804a178
 8048272:	ff 25 7c a1 04 08    	jmp    *0x804a17c
 8048278:	00 00                	add    %al,(%eax)
 804827a:	00 00                	add    %al,(%eax)
 804827c:	ff 25 80 a1 04 08    	jmp    *0x804a180
 8048282:	68 00 00 00 00       	push   $0x0
 8048287:	e9 e0 ff ff ff       	jmp    804826c <_init+0x18>
Disassembly of section .text:

08048290 <_start>:
 8048290:	31 ed                	xor    %ebp,%ebp
 8048292:	5e                   	pop    %esi
 8048293:	89 e1                	mov    %esp,%ecx
 8048295:	83 e4 f0             	and    $0xfffffff0,%esp
 8048298:	50                   	push   %eax
 8048299:	54                   	push   %esp
 804829a:	52                   	push   %edx
 804829b:	68 00 90 04 08       	push   $0x8049000
 80482a0:	68 b0 8f 04 08       	push   $0x8048fb0
 80482a5:	51                   	push   %ecx
 80482a6:	56                   	push   %esi
 80482a7:	68 3c 83 04 08       	push   $0x804833c
 80482ac:	e8 cb ff ff ff       	call   804827c <_init+0x28>
 80482b1:	f4                   	hlt    
 80482b2:	90                   	nop    
 80482b3:	90                   	nop    

080482b4 <call_gmon_start>:
 80482b4:	55                   	push   %ebp
 80482b5:	89 e5                	mov    %esp,%ebp
 80482b7:	53                   	push   %ebx
 80482b8:	e8 00 00 00 00       	call   80482bd <call_gmon_start+0x9>
 80482bd:	5b                   	pop    %ebx
 80482be:	81 c3 b7 1e 00 00    	add    $0x1eb7,%ebx
 80482c4:	52                   	push   %edx
 80482c5:	8b 83 10 00 00 00    	mov    0x10(%ebx),%eax
 80482cb:	85 c0                	test   %eax,%eax
 80482cd:	74 02                	je     80482d1 <call_gmon_start+0x1d>
 80482cf:	ff d0                	call   *%eax
 80482d1:	58                   	pop    %eax
 80482d2:	5b                   	pop    %ebx
 80482d3:	c9                   	leave  
 80482d4:	c3                   	ret    
 80482d5:	90                   	nop    
 80482d6:	90                   	nop    
 80482d7:	90                   	nop    
 80482d8:	90                   	nop    
 80482d9:	90                   	nop    
 80482da:	90                   	nop    
 80482db:	90                   	nop    
 80482dc:	90                   	nop    
 80482dd:	90                   	nop    
 80482de:	90                   	nop    
 80482df:	90                   	nop    

080482e0 <__do_global_dtors_aux>:
 80482e0:	55                   	push   %ebp
 80482e1:	89 e5                	mov    %esp,%ebp
 80482e3:	50                   	push   %eax
 80482e4:	50                   	push   %eax
 80482e5:	80 3d 88 a1 04 08 00 	cmpb   $0x0,0x804a188
 80482ec:	74 0c                	je     80482fa <__do_global_dtors_aux+0x1a>
 80482ee:	eb 1c                	jmp    804830c <__do_global_dtors_aux+0x2c>
 80482f0:	83 c0 04             	add    $0x4,%eax
 80482f3:	a3 94 a0 04 08       	mov    %eax,0x804a094
 80482f8:	ff d2                	call   *%edx
 80482fa:	a1 94 a0 04 08       	mov    0x804a094,%eax
 80482ff:	8b 10                	mov    (%eax),%edx
 8048301:	85 d2                	test   %edx,%edx
 8048303:	75 eb                	jne    80482f0 <__do_global_dtors_aux+0x10>
 8048305:	c6 05 88 a1 04 08 01 	movb   $0x1,0x804a188
 804830c:	c9                   	leave  
 804830d:	c3                   	ret    
 804830e:	89 f6                	mov    %esi,%esi

08048310 <frame_dummy>:
 8048310:	55                   	push   %ebp
 8048311:	89 e5                	mov    %esp,%ebp
 8048313:	51                   	push   %ecx
 8048314:	51                   	push   %ecx
 8048315:	8b 15 70 a1 04 08    	mov    0x804a170,%edx
 804831b:	85 d2                	test   %edx,%edx
 804831d:	74 19                	je     8048338 <frame_dummy+0x28>
 804831f:	b8 00 00 00 00       	mov    $0x0,%eax
 8048324:	85 c0                	test   %eax,%eax
 8048326:	74 10                	je     8048338 <frame_dummy+0x28>
 8048328:	83 ec 0c             	sub    $0xc,%esp
 804832b:	68 70 a1 04 08       	push   $0x804a170
 8048330:	e8 cb 7c fb f7       	call   0 <_init-0x8048254>
 8048335:	83 c4 10             	add    $0x10,%esp
 8048338:	c9                   	leave  
 8048339:	c3                   	ret    
 804833a:	90                   	nop    
 804833b:	90                   	nop    

0804833c <main>:
char *mem;
char *mptr;

int main()
{}
 804833c:	55                   	push   %ebp
 804833d:	89 e5                	mov    %esp,%ebp
 804833f:	83 ec 08             	sub    $0x8,%esp
 8048342:	83 e4 f0             	and    $0xfffffff0,%esp
 8048345:	b8 00 00 00 00       	mov    $0x0,%eax
 804834a:	83 c0 0f             	add    $0xf,%eax
 804834d:	83 c0 0f             	add    $0xf,%eax
 8048350:	c1 e8 04             	shr    $0x4,%eax
 8048353:	c1 e0 04             	shl    $0x4,%eax
 8048356:	29 c4                	sub    %eax,%esp
 8048358:	c9                   	leave  
 8048359:	c3                   	ret    

0804835a <mygetchar>:

void mygetchar() {}
 804835a:	55                   	push   %ebp
 804835b:	89 e5                	mov    %esp,%ebp
 804835d:	5d                   	pop    %ebp
 804835e:	c3                   	ret    

0804835f <myputchar>:
void myputchar() {}
 804835f:	55                   	push   %ebp
 8048360:	89 e5                	mov    %esp,%ebp
 8048362:	5d                   	pop    %ebp
 8048363:	c3                   	ret    

08048364 <test>:

void test()
{
 8048364:	55                   	push   %ebp
 8048365:	89 e5                	mov    %esp,%ebp
	*mptr += 5;
 8048367:	8b 15 90 a1 04 08    	mov    0x804a190,%edx
 804836d:	a1 90 a1 04 08       	mov    0x804a190,%eax
 8048372:	8a 00                	mov    (%eax),%al
 8048374:	83 c0 05             	add    $0x5,%eax
 8048377:	88 02                	mov    %al,(%edx)
	*mptr += -5;
 8048379:	8b 15 90 a1 04 08    	mov    0x804a190,%edx
 804837f:	a1 90 a1 04 08       	mov    0x804a190,%eax
 8048384:	8a 00                	mov    (%eax),%al
 8048386:	83 e8 05             	sub    $0x5,%eax
 8048389:	88 02                	mov    %al,(%edx)
	*mptr -= 5;
 804838b:	8b 15 90 a1 04 08    	mov    0x804a190,%edx
 8048391:	a1 90 a1 04 08       	mov    0x804a190,%eax
 8048396:	8a 00                	mov    (%eax),%al
 8048398:	83 e8 05             	sub    $0x5,%eax
 804839b:	88 02                	mov    %al,(%edx)
	*mptr -= -5;
 804839d:	8b 15 90 a1 04 08    	mov    0x804a190,%edx
 80483a3:	a1 90 a1 04 08       	mov    0x804a190,%eax
 80483a8:	8a 00                	mov    (%eax),%al
 80483aa:	83 c0 05             	add    $0x5,%eax
 80483ad:	88 02                	mov    %al,(%edx)

	*mptr = 0;
 80483af:	a1 90 a1 04 08       	mov    0x804a190,%eax
 80483b4:	c6 00 00             	movb   $0x0,(%eax)

	mptr += 5;
 80483b7:	83 05 90 a1 04 08 05 	addl   $0x5,0x804a190
	mptr += -5;
 80483be:	83 2d 90 a1 04 08 05 	subl   $0x5,0x804a190
	mptr -= 5;
 80483c5:	83 2d 90 a1 04 08 05 	subl   $0x5,0x804a190
	mptr -= -5;
 80483cc:	83 05 90 a1 04 08 05 	addl   $0x5,0x804a190

	while (*mptr) {
 80483d3:	a1 90 a1 04 08       	mov    0x804a190,%eax
 80483d8:	80 38 00             	cmpb   $0x0,(%eax)
 80483db:	0f 84 bd 0b 00 00    	je     8048f9e <test+0xc3a>
...
 8048f99:	e9 35 f4 ff ff       	jmp    80483d3 <test+0x6f>
	}

	myputchar();
 8048f9e:	e8 bc f3 ff ff       	call   804835f <myputchar>
	mygetchar();
 8048fa3:	e8 b2 f3 ff ff       	call   804835a <mygetchar>
}
 8048fa8:	5d                   	pop    %ebp
 8048fa9:	c3                   	ret    
 8048faa:	90                   	nop    
 8048fab:	90                   	nop    
 8048fac:	90                   	nop    
 8048fad:	90                   	nop    
 8048fae:	90                   	nop    
 8048faf:	90                   	nop    

08048fb0 <__libc_csu_init>:
 8048fb0:	55                   	push   %ebp
 8048fb1:	89 e5                	mov    %esp,%ebp
 8048fb3:	57                   	push   %edi
 8048fb4:	56                   	push   %esi
 8048fb5:	53                   	push   %ebx
 8048fb6:	83 ec 0c             	sub    $0xc,%esp
 8048fb9:	e8 00 00 00 00       	call   8048fbe <__libc_csu_init+0xe>
 8048fbe:	5b                   	pop    %ebx
 8048fbf:	81 c3 b6 11 00 00    	add    $0x11b6,%ebx
 8048fc5:	e8 8a f2 ff ff       	call   8048254 <_init>
 8048fca:	8d 83 18 ff ff ff    	lea    0xffffff18(%ebx),%eax
 8048fd0:	8d 93 18 ff ff ff    	lea    0xffffff18(%ebx),%edx
 8048fd6:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
 8048fd9:	29 d0                	sub    %edx,%eax
 8048fdb:	31 f6                	xor    %esi,%esi
 8048fdd:	c1 f8 02             	sar    $0x2,%eax
 8048fe0:	39 c6                	cmp    %eax,%esi
 8048fe2:	73 14                	jae    8048ff8 <__libc_csu_init+0x48>
 8048fe4:	89 d7                	mov    %edx,%edi
 8048fe6:	ff 14 b2             	call   *(%edx,%esi,4)
 8048fe9:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
 8048fec:	29 f9                	sub    %edi,%ecx
 8048fee:	46                   	inc    %esi
 8048fef:	c1 f9 02             	sar    $0x2,%ecx
 8048ff2:	89 fa                	mov    %edi,%edx
 8048ff4:	39 ce                	cmp    %ecx,%esi
 8048ff6:	72 ee                	jb     8048fe6 <__libc_csu_init+0x36>
 8048ff8:	83 c4 0c             	add    $0xc,%esp
 8048ffb:	5b                   	pop    %ebx
 8048ffc:	5e                   	pop    %esi
 8048ffd:	5f                   	pop    %edi
 8048ffe:	5d                   	pop    %ebp
 8048fff:	c3                   	ret    

08049000 <__libc_csu_fini>:
 8049000:	55                   	push   %ebp
 8049001:	89 e5                	mov    %esp,%ebp
 8049003:	57                   	push   %edi
 8049004:	56                   	push   %esi
 8049005:	53                   	push   %ebx
 8049006:	e8 00 00 00 00       	call   804900b <__libc_csu_fini+0xb>
 804900b:	5b                   	pop    %ebx
 804900c:	81 c3 69 11 00 00    	add    $0x1169,%ebx
 8049012:	83 ec 0c             	sub    $0xc,%esp
 8049015:	8d b3 18 ff ff ff    	lea    0xffffff18(%ebx),%esi
 804901b:	8d bb 18 ff ff ff    	lea    0xffffff18(%ebx),%edi
 8049021:	29 fe                	sub    %edi,%esi
 8049023:	c1 fe 02             	sar    $0x2,%esi
 8049026:	eb 03                	jmp    804902b <__libc_csu_fini+0x2b>
 8049028:	ff 14 b7             	call   *(%edi,%esi,4)
 804902b:	4e                   	dec    %esi
 804902c:	83 fe ff             	cmp    $0xffffffff,%esi
 804902f:	75 f7                	jne    8049028 <__libc_csu_fini+0x28>
 8049031:	e8 2e 00 00 00       	call   8049064 <_fini>
 8049036:	83 c4 0c             	add    $0xc,%esp
 8049039:	5b                   	pop    %ebx
 804903a:	5e                   	pop    %esi
 804903b:	5f                   	pop    %edi
 804903c:	5d                   	pop    %ebp
 804903d:	c3                   	ret    
 804903e:	90                   	nop    
 804903f:	90                   	nop    

08049040 <__do_global_ctors_aux>:
 8049040:	55                   	push   %ebp
 8049041:	89 e5                	mov    %esp,%ebp
 8049043:	53                   	push   %ebx
 8049044:	52                   	push   %edx
 8049045:	bb 60 a1 04 08       	mov    $0x804a160,%ebx
 804904a:	a1 60 a1 04 08       	mov    0x804a160,%eax
 804904f:	eb 07                	jmp    8049058 <__do_global_ctors_aux+0x18>
 8049051:	83 eb 04             	sub    $0x4,%ebx
 8049054:	ff d0                	call   *%eax
 8049056:	8b 03                	mov    (%ebx),%eax
 8049058:	83 f8 ff             	cmp    $0xffffffff,%eax
 804905b:	75 f4                	jne    8049051 <__do_global_ctors_aux+0x11>
 804905d:	58                   	pop    %eax
 804905e:	5b                   	pop    %ebx
 804905f:	5d                   	pop    %ebp
 8049060:	c3                   	ret    
 8049061:	90                   	nop    
 8049062:	90                   	nop    
 8049063:	90                   	nop    
Disassembly of section .fini:

08049064 <_fini>:
 8049064:	55                   	push   %ebp
 8049065:	89 e5                	mov    %esp,%ebp
 8049067:	53                   	push   %ebx
 8049068:	e8 00 00 00 00       	call   804906d <_fini+0x9>
 804906d:	5b                   	pop    %ebx
 804906e:	81 c3 07 11 00 00    	add    $0x1107,%ebx
 8049074:	50                   	push   %eax
 8049075:	e8 66 f2 ff ff       	call   80482e0 <__do_global_dtors_aux>
 804907a:	59                   	pop    %ecx
 804907b:	5b                   	pop    %ebx
 804907c:	c9                   	leave  
 804907d:	c3                   	ret