I decided to make and run a small Benchmark test to check the speed of various loops in DarkBasic but my program crashed because I have been having serious memory issues more then likely unrelated to this program. It turned out to be sort of a blessing and I thought this was kind of cool, in C:\USERS\ APPdata\TEMP I found the Darkbasic pro Crash report and since this program was loaded up at the time of the crash It gave me the ASM that Darkbasic Generates which I for one being an OLD ASM programmer thought was pretty cool.
Thought I would share for anyone interested,
It even has the line numbers so you can learn what commands are translated to what.
On my system FOR_NEXT was a clear winner at around 60 milliseconds to run 10 million cycles
Everything else was around 450ms - 500ms
I would be very interested in hearing how everyone elses computers performed to see if mine is alot slower or pretty standard.
THE DBPro CODE:
Rem Project: SPEEDTEST
Rem Created: Thursday, November 23, 2017
Rem ***** Main Source File *****
SYNC ON
GLOBAL TIME
TESTSIZE = 10000000
DO
SET CURSOR 0,0
WAIT 500
X = 0:TIME = TIMER()
PRINT "FOR-NEXT :";
SYNC
FOR X = 0 TO TESTSIZE
NEXT
PRINT TIMER() - TIME
WAIT 500
X = 0:TIME = TIMER()
PRINT "WHILE STATEMENT :";
SYNC
WHILE X < TESTSIZE
X = X + 1
ENDWHILE
PRINT TIMER() - TIME
WAIT 500
X= 0:TIME = TIMER()
PRINT "REPEAT-UNTIL :";
SYNC
REPEAT
X = X + 1
UNTIL X > TESTSIZE
PRINT TIMER() - TIME
WAIT 500
X=0:TIME = TIMER()
PRINT "GOTO :";
SYNC
Label:
X = X + 1
IF X < TESTSIZE THEN GOTO LABEL
PRINT TIMER() - TIME
LOOP
PRINT "PRESS ANY KEY"
WAIT KEY
THE GENERATED ASM CODE:
######CODE:
0 PUSH REGISTERS ; PUSH REGISTERS
0 MOV MEM4 ESP @$_ESP_ ; STORE STACK IN MEM
1 LINE : :`:`:`:`:`:`:`:`:`:`
2 LINE : :`:`:`:`:`:`:`:`:`:`:`:`:`:`:`:`:`:`:`:`
3 LINE :
4 LINE : :`:`:`:`:`:`:`:`:`:`:`:`:`:`:`:`
5 LINE : SYNC ON
5 MOV EBX IMM4 [1
5 CALL EBX ; CALL [dbprocore.dll ,?SyncOn@@YAXXZ
5 MOV MEM IMM4 @$_SLN_, 5
5 MOV EAX MEM4 @$_ERR_
5 CMP EAX4 0
5 JNE $labelend ; CALL Normal Runtime Error Hook
6 LINE :
7 LINE : GLOBAL TIME
7 MOV EAX IMM4 , 0
7 MOV MEM4 EAX @TIME ; ASSIGN X TO X
7 MOV MEM IMM4 @$_SLN_, 7
7 MOV EAX MEM4 @$_ERR_
7 CMP EAX4 0
7 JNE $labelend ; CALL Normal Runtime Error Hook
8 LINE :
9 LINE :
10 LINE :
11 LINE : TESTSIZE , 10000000
11 MOV EAX IMM4 , 10000000
11 MOV MEM4 EAX @TESTSIZE ; ASSIGN X TO X
11 MOV MEM IMM4 @$_SLN_, 11
11 MOV EAX MEM4 @$_ERR_
11 CMP EAX4 0
11 JNE $labelend ; CALL Normal Runtime Error Hook
12 LINE :
13 LINE : DO
14 LINE : SET CURSOR 0,0
14 MOV EAX IMM4 , 0
14 PUSH EAX ; PUSH TO STACK
14 MOV EAX IMM4 , 0
14 PUSH EAX ; PUSH TO STACK
14 MOV EBX IMM4 [2
14 CALL EBX ; CALL [dbprocore.dll ,?SetCursor@@YAXHH@Z
14 POP EBX ; POP EBX FROM STACK
14 POP EBX ; POP EBX FROM STACK
14 MOV MEM IMM4 @$_SLN_, 14
14 MOV EAX MEM4 @$_ERR_
14 CMP EAX4 0
14 JNE $labelend ; CALL Normal Runtime Error Hook
15 LINE : WAIT 500
15 MOV EAX IMM4 , 500
15 PUSH EAX ; PUSH TO STACK
15 MOV EBX IMM4 [3
15 CALL EBX ; CALL [dbprocore.dll ,?SleepL@@YAXH@Z
15 POP EBX ; POP EBX FROM STACK
15 MOV MEM IMM4 @$_SLN_, 15
15 MOV EAX MEM4 @$_ERR_
15 CMP EAX4 0
15 JNE $labelend ; CALL Normal Runtime Error Hook
16 LINE : X , 0:TIME , TIMER()
16 MOV EAX IMM4 , 0
16 MOV MEM4 EAX @X ; ASSIGN X TO X
16 MOV MEM IMM4 @$_SLN_, 16
16 MOV EAX MEM4 @$_ERR_
16 CMP EAX4 0
16 JNE $labelend ; CALL Normal Runtime Error Hook
16 MOV EBX IMM4 [4
16 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
16 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
16 MOV MEM IMM4 @$_SLN_, 16
16 MOV EAX MEM4 @$_ERR_
16 CMP EAX4 0
16 JNE $labelend ; CALL Normal Runtime Error Hook
16 MOV EAX MEM4 @$L0
16 MOV MEM4 EAX @TIME ; ASSIGN X TO X
16 MOV MEM IMM4 @$_SLN_, 16
16 MOV EAX MEM4 @$_ERR_
16 CMP EAX4 0
16 JNE $labelend ; CALL Normal Runtime Error Hook
17 LINE : PRINT "FOR-NEXT :";
17 MOV EAX IMM4 $$1
17 PUSH EAX ; PUSH TO STACK
17 MOV EBX IMM4 [5
17 CALL EBX ; CALL [dbprocore.dll ,?PrintCS@@YAXPAD@Z
17 POP EBX ; POP EBX FROM STACK
17 MOV MEM IMM4 @$_SLN_, 17
17 MOV EAX MEM4 @$_ERR_
17 CMP EAX4 0
17 JNE $labelend ; CALL Normal Runtime Error Hook
18 LINE : SYNC
18 MOV EBX IMM4 [6
18 CALL EBX ; CALL [dbprocore.dll ,?Sync@@YAXXZ
18 MOV MEM IMM4 @$_SLN_, 18
18 MOV EAX MEM4 @$_ERR_
18 CMP EAX4 0
18 JNE $labelend ; CALL Normal Runtime Error Hook
19 LINE : FOR X = 0 TO TESTSIZE
19 MOV EAX IMM4 , 0
19 SUB EAX IMM4 , 1
19 MOV MEM4 EAX @X ; SUB
19 MOV MEM IMM4 @$_SLN_, 19
19 MOV EAX MEM4 @$_ERR_
19 CMP EAX4 0
19 JNE $labelend ; CALL Normal Runtime Error Hook
19 MOV EAX MEM4 @X
19 ADD EAX IMM4 , 1
19 MOV MEM4 EAX @X ; ADD
19 MOV MEM IMM4 @$_SLN_, 19
19 MOV EAX MEM4 @$_ERR_
19 CMP EAX4 0
19 JNE $labelend ; CALL Normal Runtime Error Hook
19 MOV EAX MEM4 @TESTSIZE
19 PUSH EAX
19 MOV EAX MEM4 @X
19 MOV EBX EAX4
19 POP EDX
19 MOV EAX IMM4 0
19 CMP EDX EBX4
19 SETLE EAX
19 MOV MEM4 EAX @$L3 ; LESSEQUAL
19 MOV EAX MEM4 @$L3
19 CMP EAX4 0 ; CONDITION COMPARE
19 JE $label1[21] ; JUMP IF EQUAL
20 JMP $label0[19] ; DIRECT JUMP
19 MOV MEM IMM4 @$_SLN_, 19
19 MOV EAX MEM4 @$_ERR_
19 CMP EAX4 0
19 JNE $labelend ; CALL Normal Runtime Error Hook
20 LINE : NEXT
21 LINE : PRINT TIMER() - TIME
21 MOV EBX IMM4 [4
21 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
21 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
21 MOV MEM IMM4 @$_SLN_, 21
21 MOV EAX MEM4 @$_ERR_
21 CMP EAX4 0
21 JNE $labelend ; CALL Normal Runtime Error Hook
21 MOV EAX MEM4 @TIME
21 PUSH EAX
21 MOV EAX MEM4 @$L0
21 POP EBX
21 SUB EAX EBX4
21 MOV MEM4 EAX @$L1 ; SUB
21 MOV EAX MEM4 @$L1
21 PUSH EAX ; PUSH TO STACK
21 MOV EBX IMM4 [7
21 CALL EBX ; CALL [dbprocore.dll ,?CastLtoR@@YA_JH@Z
21 POP EBX ; POP EBX FROM STACK
21 MOV MEM4 EAX @$R2
21 MOV EAX EDX4
21 MOV MEM4 EAX +@$R2 ; ASSIGN EAX TO X
21 MOV EAX MEM4 +@$R2
21 MOV EDX EAX
21 MOV EAX MEM4 @$R2
21 PUSH EDX
21 PUSH EAX ; PUSH TO STACK
21 MOV EBX IMM4 [8
21 CALL EBX ; CALL [dbprocore.dll ,?PrintR@@YAX_J@Z
21 POP EBX ; POP EBX FROM STACK
21 POP EBX ; POP EBX FROM STACK
21 MOV MEM IMM4 @$_SLN_, 21
21 MOV EAX MEM4 @$_ERR_
21 CMP EAX4 0
21 JNE $labelend ; CALL Normal Runtime Error Hook
22 LINE :
23 LINE :
24 LINE : WAIT 500
24 MOV EAX IMM4 , 500
24 PUSH EAX ; PUSH TO STACK
24 MOV EBX IMM4 [3
24 CALL EBX ; CALL [dbprocore.dll ,?SleepL@@YAXH@Z
24 POP EBX ; POP EBX FROM STACK
24 MOV MEM IMM4 @$_SLN_, 24
24 MOV EAX MEM4 @$_ERR_
24 CMP EAX4 0
24 JNE $labelend ; CALL Normal Runtime Error Hook
25 LINE : X , 0:TIME , TIMER()
25 MOV EAX IMM4 , 0
25 MOV MEM4 EAX @X ; ASSIGN X TO X
25 MOV MEM IMM4 @$_SLN_, 25
25 MOV EAX MEM4 @$_ERR_
25 CMP EAX4 0
25 JNE $labelend ; CALL Normal Runtime Error Hook
25 MOV EBX IMM4 [4
25 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
25 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
25 MOV MEM IMM4 @$_SLN_, 25
25 MOV EAX MEM4 @$_ERR_
25 CMP EAX4 0
25 JNE $labelend ; CALL Normal Runtime Error Hook
25 MOV EAX MEM4 @$L0
25 MOV MEM4 EAX @TIME ; ASSIGN X TO X
25 MOV MEM IMM4 @$_SLN_, 25
25 MOV EAX MEM4 @$_ERR_
25 CMP EAX4 0
25 JNE $labelend ; CALL Normal Runtime Error Hook
26 LINE : PRINT "WHILE STATEMENT :";
26 MOV EAX IMM4 $$2
26 PUSH EAX ; PUSH TO STACK
26 MOV EBX IMM4 [5
26 CALL EBX ; CALL [dbprocore.dll ,?PrintCS@@YAXPAD@Z
26 POP EBX ; POP EBX FROM STACK
26 MOV MEM IMM4 @$_SLN_, 26
26 MOV EAX MEM4 @$_ERR_
26 CMP EAX4 0
26 JNE $labelend ; CALL Normal Runtime Error Hook
27 LINE : SYNC
27 MOV EBX IMM4 [6
27 CALL EBX ; CALL [dbprocore.dll ,?Sync@@YAXXZ
27 MOV MEM IMM4 @$_SLN_, 27
27 MOV EAX MEM4 @$_ERR_
27 CMP EAX4 0
27 JNE $labelend ; CALL Normal Runtime Error Hook
28 LINE : WHILE X < TESTSIZE
28 MOV EAX MEM4 @TESTSIZE
28 PUSH EAX
28 MOV EAX MEM4 @X
28 MOV EBX EAX4
28 POP EDX
28 MOV EAX IMM4 0
28 CMP EDX EBX4
28 SETL EAX
28 MOV MEM4 EAX @$L0 ; LESS
28 MOV EAX MEM4 @$L0
28 CMP EAX4 0 ; CONDITION COMPARE
28 JE $label3[31] ; JUMP IF EQUAL
29 LINE : X , X + 1
29 MOV EAX MEM4 @X
29 ADD EAX IMM4 , 1
29 MOV MEM4 EAX @$L0 ; ADD
29 MOV EAX MEM4 @$L0
29 MOV MEM4 EAX @X ; ASSIGN X TO X
29 MOV MEM IMM4 @$_SLN_, 29
29 MOV EAX MEM4 @$_ERR_
29 CMP EAX4 0
29 JNE $labelend ; CALL Normal Runtime Error Hook
28 MOV EBX IMM4 [9
28 CALL EBX ; CALL [dbprocore.dll ,?ProcessMessages@@YAKXZ
28 CMP EAX4 1 ; CONDITION COMPARE
28 JE $labelend ; JUMP IF EQUAL
30 JMP $label2[28] ; DIRECT JUMP
28 MOV MEM IMM4 @$_SLN_, 28
28 MOV EAX MEM4 @$_ERR_
28 CMP EAX4 0
28 JNE $labelend ; CALL Normal Runtime Error Hook
30 LINE : ENDWHILE
31 LINE : PRINT TIMER() - TIME
31 MOV EBX IMM4 [4
31 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
31 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
31 MOV MEM IMM4 @$_SLN_, 31
31 MOV EAX MEM4 @$_ERR_
31 CMP EAX4 0
31 JNE $labelend ; CALL Normal Runtime Error Hook
31 MOV EAX MEM4 @TIME
31 PUSH EAX
31 MOV EAX MEM4 @$L0
31 POP EBX
31 SUB EAX EBX4
31 MOV MEM4 EAX @$L1 ; SUB
31 MOV EAX MEM4 @$L1
31 PUSH EAX ; PUSH TO STACK
31 MOV EBX IMM4 [7
31 CALL EBX ; CALL [dbprocore.dll ,?CastLtoR@@YA_JH@Z
31 POP EBX ; POP EBX FROM STACK
31 MOV MEM4 EAX @$R2
31 MOV EAX EDX4
31 MOV MEM4 EAX +@$R2 ; ASSIGN EAX TO X
31 MOV EAX MEM4 +@$R2
31 MOV EDX EAX
31 MOV EAX MEM4 @$R2
31 PUSH EDX
31 PUSH EAX ; PUSH TO STACK
31 MOV EBX IMM4 [8
31 CALL EBX ; CALL [dbprocore.dll ,?PrintR@@YAX_J@Z
31 POP EBX ; POP EBX FROM STACK
31 POP EBX ; POP EBX FROM STACK
31 MOV MEM IMM4 @$_SLN_, 31
31 MOV EAX MEM4 @$_ERR_
31 CMP EAX4 0
31 JNE $labelend ; CALL Normal Runtime Error Hook
32 LINE :
33 LINE : WAIT 500
33 MOV EAX IMM4 , 500
33 PUSH EAX ; PUSH TO STACK
33 MOV EBX IMM4 [3
33 CALL EBX ; CALL [dbprocore.dll ,?SleepL@@YAXH@Z
33 POP EBX ; POP EBX FROM STACK
33 MOV MEM IMM4 @$_SLN_, 33
33 MOV EAX MEM4 @$_ERR_
33 CMP EAX4 0
33 JNE $labelend ; CALL Normal Runtime Error Hook
34 LINE : X, 0:TIME , TIMER()
34 MOV EAX IMM4 , 0
34 MOV MEM4 EAX @X ; ASSIGN X TO X
34 MOV MEM IMM4 @$_SLN_, 34
34 MOV EAX MEM4 @$_ERR_
34 CMP EAX4 0
34 JNE $labelend ; CALL Normal Runtime Error Hook
34 MOV EBX IMM4 [4
34 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
34 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
34 MOV MEM IMM4 @$_SLN_, 34
34 MOV EAX MEM4 @$_ERR_
34 CMP EAX4 0
34 JNE $labelend ; CALL Normal Runtime Error Hook
34 MOV EAX MEM4 @$L0
34 MOV MEM4 EAX @TIME ; ASSIGN X TO X
34 MOV MEM IMM4 @$_SLN_, 34
34 MOV EAX MEM4 @$_ERR_
34 CMP EAX4 0
34 JNE $labelend ; CALL Normal Runtime Error Hook
35 LINE : PRINT "REPEAT-UNTIL :";
35 MOV EAX IMM4 $$3
35 PUSH EAX ; PUSH TO STACK
35 MOV EBX IMM4 [5
35 CALL EBX ; CALL [dbprocore.dll ,?PrintCS@@YAXPAD@Z
35 POP EBX ; POP EBX FROM STACK
35 MOV MEM IMM4 @$_SLN_, 35
35 MOV EAX MEM4 @$_ERR_
35 CMP EAX4 0
35 JNE $labelend ; CALL Normal Runtime Error Hook
36 LINE : SYNC
36 MOV EBX IMM4 [6
36 CALL EBX ; CALL [dbprocore.dll ,?Sync@@YAXXZ
36 MOV MEM IMM4 @$_SLN_, 36
36 MOV EAX MEM4 @$_ERR_
36 CMP EAX4 0
36 JNE $labelend ; CALL Normal Runtime Error Hook
37 LINE : REPEAT
38 LINE : X , X + 1
38 MOV EAX MEM4 @X
38 ADD EAX IMM4 , 1
38 MOV MEM4 EAX @$L0 ; ADD
38 MOV EAX MEM4 @$L0
38 MOV MEM4 EAX @X ; ASSIGN X TO X
38 MOV MEM IMM4 @$_SLN_, 38
38 MOV EAX MEM4 @$_ERR_
38 CMP EAX4 0
38 JNE $labelend ; CALL Normal Runtime Error Hook
37 MOV EBX IMM4 [9
37 CALL EBX ; CALL [dbprocore.dll ,?ProcessMessages@@YAKXZ
37 CMP EAX4 1 ; CONDITION COMPARE
37 JE $labelend ; JUMP IF EQUAL
39 MOV EAX MEM4 @TESTSIZE
39 PUSH EAX
39 MOV EAX MEM4 @X
39 MOV EBX EAX4
39 POP EDX
39 MOV EAX IMM4 0
39 CMP EDX EBX4
39 SETG EAX
39 MOV MEM4 EAX @$L0 ; GREATER
39 MOV EAX MEM4 @$L0
39 CMP EAX4 0 ; CONDITION COMPARE
39 JE $label4[37] ; JUMP IF EQUAL
37 MOV MEM IMM4 @$_SLN_, 37
37 MOV EAX MEM4 @$_ERR_
37 CMP EAX4 0
37 JNE $labelend ; CALL Normal Runtime Error Hook
39 LINE : UNTIL X > TESTSIZE
40 LINE : PRINT TIMER() - TIME
40 MOV EBX IMM4 [4
40 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
40 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
40 MOV MEM IMM4 @$_SLN_, 40
40 MOV EAX MEM4 @$_ERR_
40 CMP EAX4 0
40 JNE $labelend ; CALL Normal Runtime Error Hook
40 MOV EAX MEM4 @TIME
40 PUSH EAX
40 MOV EAX MEM4 @$L0
40 POP EBX
40 SUB EAX EBX4
40 MOV MEM4 EAX @$L1 ; SUB
40 MOV EAX MEM4 @$L1
40 PUSH EAX ; PUSH TO STACK
40 MOV EBX IMM4 [7
40 CALL EBX ; CALL [dbprocore.dll ,?CastLtoR@@YA_JH@Z
40 POP EBX ; POP EBX FROM STACK
40 MOV MEM4 EAX @$R2
40 MOV EAX EDX4
40 MOV MEM4 EAX +@$R2 ; ASSIGN EAX TO X
40 MOV EAX MEM4 +@$R2
40 MOV EDX EAX
40 MOV EAX MEM4 @$R2
40 PUSH EDX
40 PUSH EAX ; PUSH TO STACK
40 MOV EBX IMM4 [8
40 CALL EBX ; CALL [dbprocore.dll ,?PrintR@@YAX_J@Z
40 POP EBX ; POP EBX FROM STACK
40 POP EBX ; POP EBX FROM STACK
40 MOV MEM IMM4 @$_SLN_, 40
40 MOV EAX MEM4 @$_ERR_
40 CMP EAX4 0
40 JNE $labelend ; CALL Normal Runtime Error Hook
41 LINE :
42 LINE : WAIT 500
42 MOV EAX IMM4 , 500
42 PUSH EAX ; PUSH TO STACK
42 MOV EBX IMM4 [3
42 CALL EBX ; CALL [dbprocore.dll ,?SleepL@@YAXH@Z
42 POP EBX ; POP EBX FROM STACK
42 MOV MEM IMM4 @$_SLN_, 42
42 MOV EAX MEM4 @$_ERR_
42 CMP EAX4 0
42 JNE $labelend ; CALL Normal Runtime Error Hook
43 LINE : X,0:TIME , TIMER()
43 MOV EAX IMM4 , 0
43 MOV MEM4 EAX @X ; ASSIGN X TO X
43 MOV MEM IMM4 @$_SLN_, 43
43 MOV EAX MEM4 @$_ERR_
43 CMP EAX4 0
43 JNE $labelend ; CALL Normal Runtime Error Hook
43 MOV EBX IMM4 [4
43 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
43 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
43 MOV MEM IMM4 @$_SLN_, 43
43 MOV EAX MEM4 @$_ERR_
43 CMP EAX4 0
43 JNE $labelend ; CALL Normal Runtime Error Hook
43 MOV EAX MEM4 @$L0
43 MOV MEM4 EAX @TIME ; ASSIGN X TO X
43 MOV MEM IMM4 @$_SLN_, 43
43 MOV EAX MEM4 @$_ERR_
43 CMP EAX4 0
43 JNE $labelend ; CALL Normal Runtime Error Hook
44 LINE : PRINT "GOTO :";
44 MOV EAX IMM4 $$4
44 PUSH EAX ; PUSH TO STACK
44 MOV EBX IMM4 [5
44 CALL EBX ; CALL [dbprocore.dll ,?PrintCS@@YAXPAD@Z
44 POP EBX ; POP EBX FROM STACK
44 MOV MEM IMM4 @$_SLN_, 44
44 MOV EAX MEM4 @$_ERR_
44 CMP EAX4 0
44 JNE $labelend ; CALL Normal Runtime Error Hook
45 LINE : SYNC
45 MOV EBX IMM4 [6
45 CALL EBX ; CALL [dbprocore.dll ,?Sync@@YAXXZ
45 MOV MEM IMM4 @$_SLN_, 45
45 MOV EAX MEM4 @$_ERR_
45 CMP EAX4 0
45 JNE $labelend ; CALL Normal Runtime Error Hook
46 LINE : Label:
47 LINE : X , X + 1
47 MOV EAX MEM4 @X
47 ADD EAX IMM4 , 1
47 MOV MEM4 EAX @$L0 ; ADD
47 MOV EAX MEM4 @$L0
47 MOV MEM4 EAX @X ; ASSIGN X TO X
47 MOV MEM IMM4 @$_SLN_, 47
47 MOV EAX MEM4 @$_ERR_
47 CMP EAX4 0
47 JNE $labelend ; CALL Normal Runtime Error Hook
48 LINE : IF X < TESTSIZE : GOTO LABEL
48 MOV EAX MEM4 @TESTSIZE
48 PUSH EAX
48 MOV EAX MEM4 @X
48 MOV EBX EAX4
48 POP EDX
48 MOV EAX IMM4 0
48 CMP EDX EBX4
48 SETL EAX
48 MOV MEM4 EAX @$L0 ; LESS
48 MOV EAX MEM4 @$L0
48 CMP EAX4 0 ; CONDITION COMPARE
48 JE $label6[49] ; JUMP IF EQUAL
48 MOV EBX IMM4 [9
48 CALL EBX ; CALL [dbprocore.dll ,?ProcessMessages@@YAKXZ
48 CMP EAX4 1 ; CONDITION COMPARE
48 JE $labelend ; JUMP IF EQUAL
48 JMP $label LABEL ; DIRECT JUMP
48 MOV MEM IMM4 @$_SLN_, 48
48 MOV EAX MEM4 @$_ERR_
48 CMP EAX4 0
48 JNE $labelend ; CALL Normal Runtime Error Hook
48 MOV MEM IMM4 @$_SLN_, 48
48 MOV EAX MEM4 @$_ERR_
48 CMP EAX4 0
48 JNE $labelend ; CALL Normal Runtime Error Hook
49 LINE : PRINT TIMER() - TIME
49 MOV EBX IMM4 [4
49 CALL EBX ; CALL [dbprocore.dll ,?TimerL@@YAHXZ
49 MOV MEM4 EAX @$L0 ; ASSIGN EAX TO X
49 MOV MEM IMM4 @$_SLN_, 49
49 MOV EAX MEM4 @$_ERR_
49 CMP EAX4 0
49 JNE $labelend ; CALL Normal Runtime Error Hook
49 MOV EAX MEM4 @TIME
49 PUSH EAX
49 MOV EAX MEM4 @$L0
49 POP EBX
49 SUB EAX EBX4
49 MOV MEM4 EAX @$L1 ; SUB
49 MOV EAX MEM4 @$L1
49 PUSH EAX ; PUSH TO STACK
49 MOV EBX IMM4 [7
49 CALL EBX ; CALL [dbprocore.dll ,?CastLtoR@@YA_JH@Z
49 POP EBX ; POP EBX FROM STACK
49 MOV MEM4 EAX @$R2
49 MOV EAX EDX4
49 MOV MEM4 EAX +@$R2 ; ASSIGN EAX TO X
49 MOV EAX MEM4 +@$R2
49 MOV EDX EAX
49 MOV EAX MEM4 @$R2
49 PUSH EDX
49 PUSH EAX ; PUSH TO STACK
49 MOV EBX IMM4 [8
49 CALL EBX ; CALL [dbprocore.dll ,?PrintR@@YAX_J@Z
49 POP EBX ; POP EBX FROM STACK
49 POP EBX ; POP EBX FROM STACK
49 MOV MEM IMM4 @$_SLN_, 49
49 MOV EAX MEM4 @$_ERR_
49 CMP EAX4 0
49 JNE $labelend ; CALL Normal Runtime Error Hook
13 MOV EBX IMM4 [9
13 CALL EBX ; CALL [dbprocore.dll ,?ProcessMessages@@YAKXZ
13 CMP EAX4 1 ; CONDITION COMPARE
13 JE $labelend ; JUMP IF EQUAL
52 JMP $label7[13] ; DIRECT JUMP
13 MOV MEM IMM4 @$_SLN_, 13
13 MOV EAX MEM4 @$_ERR_
13 CMP EAX4 0
13 JNE $labelend ; CALL Normal Runtime Error Hook
50 LINE :
51 LINE :
52 LINE : LOOP
53 LINE :
54 LINE :
55 LINE : PRINT "PRESS ANY KEY"
55 MOV EAX IMM4 $$5
55 PUSH EAX ; PUSH TO STACK
55 MOV EBX IMM4 [10
55 CALL EBX ; CALL [dbprocore.dll ,?PrintS@@YAXPAD@Z
55 POP EBX ; POP EBX FROM STACK
55 MOV MEM IMM4 @$_SLN_, 55
55 MOV EAX MEM4 @$_ERR_
55 CMP EAX4 0
55 JNE $labelend ; CALL Normal Runtime Error Hook
56 LINE : WAIT KEY
56 MOV EBX IMM4 [11
56 CALL EBX ; CALL [dbprocore.dll ,?WaitForKey@@YAXXZ
56 MOV MEM IMM4 @$_SLN_, 56
56 MOV EAX MEM4 @$_ERR_
56 CMP EAX4 0
56 JNE $labelend ; CALL Normal Runtime Error Hook
56 MOV EAX MEM4 @$_REK_
56 CMP EAX4 0
56 JNE LEAP
56 MOV EBX IMM4 [12
56 CALL EBX ; CALL [dbprocore.dll ,?Quit@@YAKXZ
56 MOV ESP MEM4 @$_ESP_ ; RESTORE STACK FROM MEM
56 POP REGISTERS ; POP REGISTERS
56 RET ; RETURN
VARIABLES:
@$_ESP_=0 [STRUCT@dword]
@$_ERR_=4 [STRUCT@dword]
@$_ESC_=8 [STRUCT@dword]
@$_REK_=12 [STRUCT@dword]
@$_SLN_=16 [STRUCT@dword]
@$_TEMPA_=20 [STRUCT@dword]
@$_TEMPB_=24 [STRUCT@dword]
@$L0=28 [STRUCT@integer]
@$L1=32 [STRUCT@integer]
@$L2=36 [STRUCT@integer]
@$L3=40 [STRUCT@integer]
@$R2=44 [STRUCT@double integer]
@$S0=52 [STRUCT@string]
@$S1=56 [STRUCT@string]
@TESTSIZE=60 [STRUCT@integer]
@TIME=64 [STRUCT@integer]
@X=68 [STRUCT@integer]
SIZE OF VARIABLE BUFFER = 72
STRING:
>>1=FOR-NEXT :
>>2=WHILE STATEMENT :
>>3=REPEAT-UNTIL :
>>4=GOTO :
>>5=PRESS ANY KEY
DLLS:
>>1=dbprocore.dll
COMMANDS:
>>1=1,?SyncOn@@YAXXZ
>>2=1,?SetCursor@@YAXHH@Z
>>3=1,?SleepL@@YAXH@Z
>>4=1,?TimerL@@YAHXZ
>>5=1,?PrintCS@@YAXPAD@Z
>>6=1,?Sync@@YAXXZ
>>7=1,?CastLtoR@@YA_JH@Z
>>8=1,?PrintR@@YAX_J@Z
>>9=1,?ProcessMessages@@YAKXZ
>>10=1,?PrintS@@YAXPAD@Z
>>11=1,?WaitForKey@@YAXXZ
>>12=1,?Quit@@YAKXZ
LABELS:
$label code:4 data:0 byte:7
$label Label code:46 data:0 byte:1890
$label0[19] code:19 data:0 byte:423
$label1[21] code:21 data:0 byte:540
$label2[28] code:28 data:0 byte:895
$label3[31] code:31 data:0 byte:1040
$label4[37] code:37 data:0 byte:1395
$label5[39] code:39 data:0 byte:1535
$label6[49] code:49 data:0 byte:2061
$label7[13] code:13 data:0 byte:112
$label8[53] code:53 data:0 byte:2242
$labelend code:56 data:0 byte:2315
DEBUG:
STRUCT@integer Overall Size:4
STRUCT@float Overall Size:4
STRUCT@string Overall Size:4
STRUCT@boolean Overall Size:1
STRUCT@byte Overall Size:1
STRUCT@word Overall Size:2
STRUCT@dword Overall Size:4
STRUCT@double float Overall Size:8
STRUCT@double integer Overall Size:8
STRUCT@label Overall Size:4
STRUCT@dabel Overall Size:4
STRUCT@integer array Overall Size:4
STRUCT@float array Overall Size:4
STRUCT@string array Overall Size:4
STRUCT@boolean array Overall Size:4
STRUCT@byte array Overall Size:4
STRUCT@word array Overall Size:4
STRUCT@dword array Overall Size:4
STRUCT@double float array Overall Size:4
STRUCT@double integer array Overall Size:4
STRUCT@anytype non casted Overall Size:4
STRUCT@userdefined var ptr Overall Size:4
STRUCT@userdefined array ptr Overall Size:4
Sphere sphere = new Sphere(0.5f);
InsanelyRedundantJava insanelyredundantjava = new InsanelyRedundantJava(Redundancy1, Redundancy2);