summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-09-03 17:16:45 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2020-09-03 17:16:45 +0200
commitc72f836f6d7319222c45e2c60e08de6d089ea131 (patch)
treeffc45f083a5b77342952d3b36bc24f417d0c2f98
parentcb3c6769befb6806f567fb7e1cfd0f349e8fb3ff (diff)
downloadcompilertests-c72f836f6d7319222c45e2c60e08de6d089ea131.tar.gz
compilertests-c72f836f6d7319222c45e2c60e08de6d089ea131.tar.bz2
sorted out parameter push order on stack
-rw-r--r--ecomp-c/ec.c8
-rw-r--r--ecomp-c/tests/procedure_call_value_parameters.e6
-rw-r--r--ecomp-c/tests/procedure_call_value_parameters.easm23
-rw-r--r--ecomp-c/tests/procedure_call_value_parameters.erun1044
4 files changed, 686 insertions, 395 deletions
diff --git a/ecomp-c/ec.c b/ecomp-c/ec.c
index 2e5b288..3b044df 100644
--- a/ecomp-c/ec.c
+++ b/ecomp-c/ec.c
@@ -1666,10 +1666,10 @@ static void parseProcedureCall( Scope *scope )
Emit( "; CALL %s", symbol->label );
if( nof_actual_params > 0 ) {
Emit( "( " );
- node = list.head;
+ node = list.tail;
while( node != NULL ) {
generate_expression_comment( node );
- node = node->next;
+ node = node->prev;
}
Emit( ")" );
}
@@ -1677,10 +1677,10 @@ static void parseProcedureCall( Scope *scope )
/* emit assembly to push parameters onto stack and call procedure */
if( nof_actual_params > 0 ) {
- node = list.head;
+ node = list.tail;
while( node != NULL ) {
emit_expression_code( node, scope );
- node = node->next;
+ node = node->prev;
}
free_expression_node( list.head );
diff --git a/ecomp-c/tests/procedure_call_value_parameters.e b/ecomp-c/tests/procedure_call_value_parameters.e
index f0d6372..e7e1bc9 100644
--- a/ecomp-c/tests/procedure_call_value_parameters.e
+++ b/ecomp-c/tests/procedure_call_value_parameters.e
@@ -7,14 +7,14 @@ module procedure_call_value_parameters;
var
i : integer := 1;
-procedure proc( x : integer );
+procedure proc( x : integer, y : integer );
var
l : integer;
begin
- l := x;
+ l := x - y;
i := l;
end
begin
- proc( 42 );
+ proc( 43, 1 );
end
diff --git a/ecomp-c/tests/procedure_call_value_parameters.easm b/ecomp-c/tests/procedure_call_value_parameters.easm
index a44959e..787f952 100644
--- a/ecomp-c/tests/procedure_call_value_parameters.easm
+++ b/ecomp-c/tests/procedure_call_value_parameters.easm
@@ -3,7 +3,8 @@ use32
org $1000000
jmp __global_0
; DECL i -> integer, 1
-; param x, offset: -8, size: 4
+; param y, offset: -8, size: 4
+; param x, offset: -12, size: 4
; PROC proc
__global_proc:
push ebp
@@ -19,13 +20,23 @@ mov eax, 4
sub ebx, eax
mov eax, 0
mov [ebx], eax
-; LET l <- x
+; LET l <- x y -
+push ebp
+pop ebx
+mov eax, -12
+sub ebx, eax
+mov eax, [ebx]
+push eax
push ebp
pop ebx
mov eax, -8
sub ebx, eax
mov eax, [ebx]
push eax
+pop ebx
+pop eax
+sub eax, ebx
+push eax
push ebp
pop ebx
mov eax, 4
@@ -44,10 +55,12 @@ mov [i], eax
mov eax, 4
add esp, eax
pop ebp
-ret 4
+ret 8
__global_0:
-; CALL __global_proc( 42 )
-mov eax, 42
+; CALL __global_proc( 43 1 )
+mov eax, 43
+push eax
+mov eax, 1
push eax
call __global_proc
hlt
diff --git a/ecomp-c/tests/procedure_call_value_parameters.erun b/ecomp-c/tests/procedure_call_value_parameters.erun
index 927e555..821b51a 100644
--- a/ecomp-c/tests/procedure_call_value_parameters.erun
+++ b/ecomp-c/tests/procedure_call_value_parameters.erun
@@ -1,5 +1,5 @@
-Read 97 bytes of code and static data..
-1000000: EB4F jmp 0x1000051
+Read 120 bytes of code and static data..
+1000000: EB60 jmp 0x1000062
1000002: 55 push ebp
1000003: 54 push esp
1000004: 5D pop ebp
@@ -13,42 +13,54 @@ Read 97 bytes of code and static data..
100001A: 8903 mov dword ptr [ebx], eax
100001C: 55 push ebp
100001D: 5B pop ebx
-100001E: B8F8FFFFFF mov eax, 0xfffffff8
+100001E: B8F4FFFFFF mov eax, 0xfffffff4
1000023: 29C3 sub ebx, eax
1000025: 8B03 mov eax, dword ptr [ebx]
1000027: 50 push eax
1000028: 55 push ebp
1000029: 5B pop ebx
-100002A: B804000000 mov eax, 4
+100002A: B8F8FFFFFF mov eax, 0xfffffff8
100002F: 29C3 sub ebx, eax
-1000031: 58 pop eax
-1000032: 8903 mov dword ptr [ebx], eax
-1000034: 55 push ebp
-1000035: 5B pop ebx
-1000036: B804000000 mov eax, 4
-100003B: 29C3 sub ebx, eax
-100003D: 8B03 mov eax, dword ptr [ebx]
-100003F: 50 push eax
-1000040: 58 pop eax
-1000041: A35D000001 mov dword ptr [0x100005d], eax
-1000046: B804000000 mov eax, 4
-100004B: 01C4 add esp, eax
-100004D: 5D pop ebp
-100004E: C20400 ret 4
-1000051: B82A000000 mov eax, 0x2a
-1000056: 50 push eax
-1000057: E8A6FFFFFF call 0x1000002
-100005C: F4 hlt
-data:
-0100005D: 01000000
+1000031: 8B03 mov eax, dword ptr [ebx]
+1000033: 50 push eax
+1000034: 5B pop ebx
+1000035: 58 pop eax
+1000036: 29D8 sub eax, ebx
+1000038: 50 push eax
+1000039: 55 push ebp
+100003A: 5B pop ebx
+100003B: B804000000 mov eax, 4
+1000040: 29C3 sub ebx, eax
+1000042: 58 pop eax
+1000043: 8903 mov dword ptr [ebx], eax
+1000045: 55 push ebp
+1000046: 5B pop ebx
+1000047: B804000000 mov eax, 4
+100004C: 29C3 sub ebx, eax
+100004E: 8B03 mov eax, dword ptr [ebx]
+1000050: 50 push eax
+1000051: 58 pop eax
+1000052: A374000001 mov dword ptr [0x1000074], eax
+1000057: B804000000 mov eax, 4
+100005C: 01C4 add esp, eax
+100005E: 5D pop ebp
+100005F: C20800 ret 8
+1000062: B82B000000 mov eax, 0x2b
+1000067: 50 push eax
+1000068: B801000000 mov eax, 1
+100006D: 50 push eax
+100006E: E88FFFFFFF call 0x1000002
+1000073: F4 hlt
+data:
+01000074: 01000000
core start 1000000
-data start 100005d
+data start 1000074
data size 4
stack start 1800000
Single step execution:
-- iteration 1
-1000000: EB4F jmp 0x1000051
-EIP: 01000051
+1000000: EB60 jmp 0x1000062
+EIP: 01000062
ESP: 01800000
EBP: 01800000
EAX: 00000000
@@ -59,13 +71,13 @@ ESI: 00000000
EDI: 00000000
stack:
data:
-0100005D: 01000000
+01000074: 01000000
-- iteration 2
-1000051: B82A000000 mov eax, 0x2a
-EIP: 01000056
+1000062: B82B000000 mov eax, 0x2b
+EIP: 01000067
ESP: 01800000
EBP: 01800000
-EAX: 0000002A
+EAX: 0000002B
EBX: 00000000
ECX: 00000000
EDX: 00000000
@@ -73,95 +85,130 @@ ESI: 00000000
EDI: 00000000
stack:
data:
-0100005D: 01000000
+01000074: 01000000
-- iteration 3
-1000056: 50 push eax
-EIP: 01000057
+1000067: 50 push eax
+EIP: 01000068
ESP: 017FFFFC
EBP: 01800000
-EAX: 0000002A
+EAX: 0000002B
EBX: 00000000
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFFC: 0000002A
+017FFFFC: 0000002B
data:
-0100005D: 01000000
+01000074: 01000000
-- iteration 4
-1000057: E8A6FFFFFF call 0x1000002
-EIP: 01000002
-ESP: 017FFFF8
+1000068: B801000000 mov eax, 1
+EIP: 0100006D
+ESP: 017FFFFC
EBP: 01800000
-EAX: 0000002A
+EAX: 00000001
EBX: 00000000
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFFC: 0000002B
data:
-0100005D: 01000000
+01000074: 01000000
-- iteration 5
+100006D: 50 push eax
+EIP: 0100006E
+ESP: 017FFFF8
+EBP: 01800000
+EAX: 00000001
+EBX: 00000000
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 6
+100006E: E88FFFFFFF call 0x1000002
+EIP: 01000002
+ESP: 017FFFF4
+EBP: 01800000
+EAX: 00000001
+EBX: 00000000
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 7
1000002: 55 push ebp
EIP: 01000003
-ESP: 017FFFF4
+ESP: 017FFFF0
EBP: 01800000
-EAX: 0000002A
+EAX: 00000001
EBX: 00000000
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 6
+01000074: 01000000
+-- iteration 8
1000003: 54 push esp
EIP: 01000004
-ESP: 017FFFF0
+ESP: 017FFFEC
EBP: 01800000
-EAX: 0000002A
+EAX: 00000001
EBX: 00000000
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 7
+01000074: 01000000
+-- iteration 9
1000004: 5D pop ebp
EIP: 01000005
-ESP: 017FFFF4
-EBP: 017FFFF4
-EAX: 0000002A
+ESP: 017FFFF0
+EBP: 017FFFF0
+EAX: 00000001
EBX: 00000000
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 8
+01000074: 01000000
+-- iteration 10
1000005: B804000000 mov eax, 4
EIP: 0100000A
-ESP: 017FFFF4
-EBP: 017FFFF4
+ESP: 017FFFF0
+EBP: 017FFFF0
EAX: 00000004
EBX: 00000000
ECX: 00000000
@@ -169,16 +216,17 @@ EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 9
+01000074: 01000000
+-- iteration 11
100000A: 29C4 sub esp, eax
EIP: 0100000C
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000004
EBX: 00000000
ECX: 00000000
@@ -186,17 +234,18 @@ EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 10
+01000074: 01000000
+-- iteration 12
100000C: 55 push ebp
EIP: 0100000D
-ESP: 017FFFEC
-EBP: 017FFFF4
+ESP: 017FFFE8
+EBP: 017FFFF0
EAX: 00000004
EBX: 00000000
ECX: 00000000
@@ -204,386 +253,471 @@ EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 017FFFF4
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 017FFFF0
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 11
+01000074: 01000000
+-- iteration 13
100000D: 5B pop ebx
EIP: 0100000E
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000004
-EBX: 017FFFF4
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 12
+01000074: 01000000
+-- iteration 14
100000E: B804000000 mov eax, 4
EIP: 01000013
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000004
-EBX: 017FFFF4
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 13
+01000074: 01000000
+-- iteration 15
1000013: 29C3 sub ebx, eax
EIP: 01000015
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000004
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 14
+01000074: 01000000
+-- iteration 16
1000015: B800000000 mov eax, 0
EIP: 0100001A
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000000
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 017FFFF4
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 017FFFF0
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 15
+01000074: 01000000
+-- iteration 17
100001A: 8903 mov dword ptr [ebx], eax
EIP: 0100001C
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000000
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 16
+01000074: 01000000
+-- iteration 18
100001C: 55 push ebp
EIP: 0100001D
-ESP: 017FFFEC
-EBP: 017FFFF4
+ESP: 017FFFE8
+EBP: 017FFFF0
EAX: 00000000
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 017FFFF4
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 017FFFF0
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 17
+01000074: 01000000
+-- iteration 19
100001D: 5B pop ebx
EIP: 0100001E
-ESP: 017FFFF0
-EBP: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000000
-EBX: 017FFFF4
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 18
-100001E: B8F8FFFFFF mov eax, 0xfffffff8
+01000074: 01000000
+-- iteration 20
+100001E: B8F4FFFFFF mov eax, 0xfffffff4
EIP: 01000023
-ESP: 017FFFF0
-EBP: 017FFFF4
-EAX: FFFFFFF8
-EBX: 017FFFF4
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: FFFFFFF4
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 19
+01000074: 01000000
+-- iteration 21
1000023: 29C3 sub ebx, eax
EIP: 01000025
-ESP: 017FFFF0
-EBP: 017FFFF4
-EAX: FFFFFFF8
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: FFFFFFF4
EBX: 017FFFFC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 20
+01000074: 01000000
+-- iteration 22
1000025: 8B03 mov eax, dword ptr [ebx]
EIP: 01000027
-ESP: 017FFFF0
-EBP: 017FFFF4
-EAX: 0000002A
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: 0000002B
EBX: 017FFFFC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 21
+01000074: 01000000
+-- iteration 23
1000027: 50 push eax
EIP: 01000028
-ESP: 017FFFEC
-EBP: 017FFFF4
-EAX: 0000002A
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 0000002B
EBX: 017FFFFC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 0000002A
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 22
+01000074: 01000000
+-- iteration 24
1000028: 55 push ebp
EIP: 01000029
-ESP: 017FFFE8
-EBP: 017FFFF4
-EAX: 0000002A
+ESP: 017FFFE4
+EBP: 017FFFF0
+EAX: 0000002B
EBX: 017FFFFC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFE8: 017FFFF4
-017FFFEC: 0000002A
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE4: 017FFFF0
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 23
+01000074: 01000000
+-- iteration 25
1000029: 5B pop ebx
EIP: 0100002A
-ESP: 017FFFEC
-EBP: 017FFFF4
-EAX: 0000002A
-EBX: 017FFFF4
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 0000002B
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 0000002A
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 24
-100002A: B804000000 mov eax, 4
+01000074: 01000000
+-- iteration 26
+100002A: B8F8FFFFFF mov eax, 0xfffffff8
EIP: 0100002F
-ESP: 017FFFEC
-EBP: 017FFFF4
-EAX: 00000004
-EBX: 017FFFF4
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: FFFFFFF8
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 0000002A
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 25
+01000074: 01000000
+-- iteration 27
100002F: 29C3 sub ebx, eax
EIP: 01000031
-ESP: 017FFFEC
-EBP: 017FFFF4
-EAX: 00000004
-EBX: 017FFFF0
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: FFFFFFF8
+EBX: 017FFFF8
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 0000002A
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 26
-1000031: 58 pop eax
-EIP: 01000032
-ESP: 017FFFF0
-EBP: 017FFFF4
-EAX: 0000002A
-EBX: 017FFFF0
+01000074: 01000000
+-- iteration 28
+1000031: 8B03 mov eax, dword ptr [ebx]
+EIP: 01000033
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 00000001
+EBX: 017FFFF8
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 00000000
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 27
-1000032: 8903 mov dword ptr [ebx], eax
+01000074: 01000000
+-- iteration 29
+1000033: 50 push eax
EIP: 01000034
-ESP: 017FFFF0
-EBP: 017FFFF4
-EAX: 0000002A
-EBX: 017FFFF0
+ESP: 017FFFE4
+EBP: 017FFFF0
+EAX: 00000001
+EBX: 017FFFF8
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE4: 00000001
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 28
-1000034: 55 push ebp
+01000074: 01000000
+-- iteration 30
+1000034: 5B pop ebx
EIP: 01000035
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 00000001
+EBX: 00000001
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFE8: 0000002B
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 31
+1000035: 58 pop eax
+EIP: 01000036
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: 0000002B
+EBX: 00000001
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 32
+1000036: 29D8 sub eax, ebx
+EIP: 01000038
ESP: 017FFFEC
-EBP: 017FFFF4
+EBP: 017FFFF0
EAX: 0000002A
-EBX: 017FFFF0
+EBX: 00000001
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFEC: 017FFFF4
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 29
-1000035: 5B pop ebx
-EIP: 01000036
-ESP: 017FFFF0
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 33
+1000038: 50 push eax
+EIP: 01000039
+ESP: 017FFFE8
+EBP: 017FFFF0
EAX: 0000002A
-EBX: 017FFFF4
+EBX: 00000001
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 30
-1000036: B804000000 mov eax, 4
+01000074: 01000000
+-- iteration 34
+1000039: 55 push ebp
+EIP: 0100003A
+ESP: 017FFFE4
+EBP: 017FFFF0
+EAX: 0000002A
+EBX: 00000001
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFE4: 017FFFF0
+017FFFE8: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 35
+100003A: 5B pop ebx
EIP: 0100003B
-ESP: 017FFFF0
-EBP: 017FFFF4
-EAX: 00000004
-EBX: 017FFFF4
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 0000002A
+EBX: 017FFFF0
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 31
-100003B: 29C3 sub ebx, eax
-EIP: 0100003D
-ESP: 017FFFF0
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 36
+100003B: B804000000 mov eax, 4
+EIP: 01000040
+ESP: 017FFFE8
+EBP: 017FFFF0
EAX: 00000004
EBX: 017FFFF0
ECX: 00000000
@@ -591,72 +725,97 @@ EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 32
-100003D: 8B03 mov eax, dword ptr [ebx]
-EIP: 0100003F
-ESP: 017FFFF0
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 37
+1000040: 29C3 sub ebx, eax
+EIP: 01000042
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 00000004
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFE8: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 38
+1000042: 58 pop eax
+EIP: 01000043
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 0000002A
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 00000000
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 33
-100003F: 50 push eax
-EIP: 01000040
+01000074: 01000000
+-- iteration 39
+1000043: 8903 mov dword ptr [ebx], eax
+EIP: 01000045
ESP: 017FFFEC
-EBP: 017FFFF4
+EBP: 017FFFF0
EAX: 0000002A
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
017FFFEC: 0000002A
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 34
-1000040: 58 pop eax
-EIP: 01000041
-ESP: 017FFFF0
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 40
+1000045: 55 push ebp
+EIP: 01000046
+ESP: 017FFFE8
+EBP: 017FFFF0
EAX: 0000002A
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFE8: 017FFFF0
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 01000000
--- iteration 35
-1000041: A35D000001 mov dword ptr [0x100005d], eax
-EIP: 01000046
-ESP: 017FFFF0
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 41
+1000046: 5B pop ebx
+EIP: 01000047
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 0000002A
EBX: 017FFFF0
ECX: 00000000
@@ -664,17 +823,18 @@ EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 2A000000
--- iteration 36
-1000046: B804000000 mov eax, 4
-EIP: 0100004B
-ESP: 017FFFF0
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 42
+1000047: B804000000 mov eax, 4
+EIP: 0100004C
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000004
EBX: 017FFFF0
ECX: 00000000
@@ -682,70 +842,188 @@ EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF0: 0000002A
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 2A000000
--- iteration 37
-100004B: 01C4 add esp, eax
-EIP: 0100004D
-ESP: 017FFFF4
-EBP: 017FFFF4
+01000074: 01000000
+-- iteration 43
+100004C: 29C3 sub ebx, eax
+EIP: 0100004E
+ESP: 017FFFEC
+EBP: 017FFFF0
EAX: 00000004
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF4: 01800000
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 2A000000
--- iteration 38
-100004D: 5D pop ebp
-EIP: 0100004E
-ESP: 017FFFF8
+01000074: 01000000
+-- iteration 44
+100004E: 8B03 mov eax, dword ptr [ebx]
+EIP: 01000050
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: 0000002A
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 45
+1000050: 50 push eax
+EIP: 01000051
+ESP: 017FFFE8
+EBP: 017FFFF0
+EAX: 0000002A
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFE8: 0000002A
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 46
+1000051: 58 pop eax
+EIP: 01000052
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: 0000002A
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 01000000
+-- iteration 47
+1000052: A374000001 mov dword ptr [0x1000074], eax
+EIP: 01000057
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: 0000002A
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 2A000000
+-- iteration 48
+1000057: B804000000 mov eax, 4
+EIP: 0100005C
+ESP: 017FFFEC
+EBP: 017FFFF0
+EAX: 00000004
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFEC: 0000002A
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 2A000000
+-- iteration 49
+100005C: 01C4 add esp, eax
+EIP: 0100005E
+ESP: 017FFFF0
+EBP: 017FFFF0
+EAX: 00000004
+EBX: 017FFFEC
+ECX: 00000000
+EDX: 00000000
+ESI: 00000000
+EDI: 00000000
+stack:
+017FFFF0: 01800000
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
+data:
+01000074: 2A000000
+-- iteration 50
+100005E: 5D pop ebp
+EIP: 0100005F
+ESP: 017FFFF4
EBP: 01800000
EAX: 00000004
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
-017FFFF8: 0100005C
-017FFFFC: 0000002A
+017FFFF4: 01000073
+017FFFF8: 00000001
+017FFFFC: 0000002B
data:
-0100005D: 2A000000
--- iteration 39
-100004E: C20400 ret 4
-EIP: 0100005C
+01000074: 2A000000
+-- iteration 51
+100005F: C20800 ret 8
+EIP: 01000073
ESP: 01800000
EBP: 01800000
EAX: 00000004
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
data:
-0100005D: 2A000000
--- iteration 40
-100005C: F4 hlt
-EIP: 0100005D
+01000074: 2A000000
+-- iteration 52
+1000073: F4 hlt
+EIP: 01000074
ESP: 01800000
EBP: 01800000
EAX: 00000004
-EBX: 017FFFF0
+EBX: 017FFFEC
ECX: 00000000
EDX: 00000000
ESI: 00000000
EDI: 00000000
stack:
data:
-0100005D: 2A000000
+01000074: 2A000000