removed test outputs contents
This commit is contained in:
parent
f009e33799
commit
fa2eac979d
@ -1,108 +0,0 @@
|
|||||||
proc_4 PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 5D POP bp
|
|
||||||
003 0002FE C3 RET
|
|
||||||
|
|
||||||
proc_4 ENDP
|
|
||||||
|
|
||||||
proc_3 PROC NEAR
|
|
||||||
000 0002FF 55 PUSH bp
|
|
||||||
001 000300 8BEC MOV bp, sp
|
|
||||||
002 000302 E8F5FF CALL near ptr proc_4
|
|
||||||
003 000305 E8F2FF CALL near ptr proc_4
|
|
||||||
004 000308 E8EFFF CALL near ptr proc_4
|
|
||||||
005 00030B E8ECFF CALL near ptr proc_4
|
|
||||||
006 00030E E8E9FF CALL near ptr proc_4
|
|
||||||
007 000311 E8E6FF CALL near ptr proc_4
|
|
||||||
008 000314 E8E3FF CALL near ptr proc_4
|
|
||||||
009 000317 E8E0FF CALL near ptr proc_4
|
|
||||||
010 00031A E8DDFF CALL near ptr proc_4
|
|
||||||
011 00031D E8DAFF CALL near ptr proc_4
|
|
||||||
012 000320 5D POP bp
|
|
||||||
013 000321 C3 RET
|
|
||||||
|
|
||||||
proc_3 ENDP
|
|
||||||
|
|
||||||
proc_2 PROC NEAR
|
|
||||||
000 000322 55 PUSH bp
|
|
||||||
001 000323 8BEC MOV bp, sp
|
|
||||||
002 000325 E8D7FF CALL near ptr proc_3
|
|
||||||
003 000328 E8D4FF CALL near ptr proc_3
|
|
||||||
004 00032B E8D1FF CALL near ptr proc_3
|
|
||||||
005 00032E E8CEFF CALL near ptr proc_3
|
|
||||||
006 000331 E8CBFF CALL near ptr proc_3
|
|
||||||
007 000334 E8C8FF CALL near ptr proc_3
|
|
||||||
008 000337 E8C5FF CALL near ptr proc_3
|
|
||||||
009 00033A E8C2FF CALL near ptr proc_3
|
|
||||||
010 00033D E8BFFF CALL near ptr proc_3
|
|
||||||
011 000340 E8BCFF CALL near ptr proc_3
|
|
||||||
012 000343 5D POP bp
|
|
||||||
013 000344 C3 RET
|
|
||||||
|
|
||||||
proc_2 ENDP
|
|
||||||
|
|
||||||
proc_1 PROC NEAR
|
|
||||||
000 000345 55 PUSH bp
|
|
||||||
001 000346 8BEC MOV bp, sp
|
|
||||||
002 000348 E8D7FF CALL near ptr proc_2
|
|
||||||
003 00034B E8D4FF CALL near ptr proc_2
|
|
||||||
004 00034E E8D1FF CALL near ptr proc_2
|
|
||||||
005 000351 E8CEFF CALL near ptr proc_2
|
|
||||||
006 000354 E8CBFF CALL near ptr proc_2
|
|
||||||
007 000357 E8C8FF CALL near ptr proc_2
|
|
||||||
008 00035A E8C5FF CALL near ptr proc_2
|
|
||||||
009 00035D E8C2FF CALL near ptr proc_2
|
|
||||||
010 000360 E8BFFF CALL near ptr proc_2
|
|
||||||
011 000363 5D POP bp
|
|
||||||
012 000364 C3 RET
|
|
||||||
|
|
||||||
proc_1 ENDP
|
|
||||||
|
|
||||||
main PROC NEAR
|
|
||||||
000 000365 55 PUSH bp
|
|
||||||
001 000366 8BEC MOV bp, sp
|
|
||||||
002 000368 83EC08 SUB sp, 8
|
|
||||||
003 00036B B89401 MOV ax, 194h
|
|
||||||
004 00036E 50 PUSH ax
|
|
||||||
005 00036F E8D90B CALL near ptr printf
|
|
||||||
006 000372 59 POP cx
|
|
||||||
007 000373 8D46FC LEA ax, [bp-4]
|
|
||||||
008 000376 50 PUSH ax
|
|
||||||
009 000377 B8B001 MOV ax, 1B0h
|
|
||||||
010 00037A 50 PUSH ax
|
|
||||||
011 00037B E85614 CALL near ptr scanf
|
|
||||||
012 00037E 59 POP cx
|
|
||||||
013 00037F 59 POP cx
|
|
||||||
014 000380 FF76FE PUSH word ptr [bp-2]
|
|
||||||
015 000383 FF76FC PUSH word ptr [bp-4]
|
|
||||||
016 000386 B8B401 MOV ax, 1B4h
|
|
||||||
017 000389 50 PUSH ax
|
|
||||||
018 00038A E8BE0B CALL near ptr printf
|
|
||||||
019 00038D 83C406 ADD sp, 6
|
|
||||||
020 000390 C746FA0000 MOV word ptr [bp-6], 0
|
|
||||||
021 000395 C746F80100 MOV word ptr [bp-8], 1
|
|
||||||
|
|
||||||
023 0003A7 8B56FA L1: MOV dx, [bp-6]
|
|
||||||
024 0003AA 8B46F8 MOV ax, [bp-8]
|
|
||||||
025 0003AD 3B56FE CMP dx, [bp-2]
|
|
||||||
026 0003B0 7CEA JL L2
|
|
||||||
027 0003B2 7F05 JG L3
|
|
||||||
028 0003B4 3B46FC CMP ax, [bp-4]
|
|
||||||
029 0003B7 76E3 JBE L2
|
|
||||||
|
|
||||||
030 0003B9 B8CE01 L3: MOV ax, 1CEh
|
|
||||||
031 0003BC 50 PUSH ax
|
|
||||||
032 0003BD E88B0B CALL near ptr printf
|
|
||||||
033 0003C0 59 POP cx
|
|
||||||
034 0003C1 8BE5 MOV sp, bp
|
|
||||||
035 0003C3 5D POP bp
|
|
||||||
036 0003C4 C3 RET
|
|
||||||
|
|
||||||
037 00039C E8A6FF L2: CALL near ptr proc_1
|
|
||||||
038 00039F 8346F801 ADD word ptr [bp-8], 1
|
|
||||||
039 0003A3 8356FA00 ADC word ptr [bp-6], 0
|
|
||||||
040 JMP L1 ;Synthetic inst
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/BENCHFN.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
void proc_4 ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void proc_3 ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
proc_4 ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void proc_2 ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
proc_3 ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void proc_1 ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
proc_2 ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
long loc1;
|
|
||||||
long loc2;
|
|
||||||
|
|
||||||
printf ("enter number of iterations ");
|
|
||||||
scanf ("%ld", &loc0);
|
|
||||||
printf ("executing %ld iterations\n", loc2);
|
|
||||||
loc1 = 1;
|
|
||||||
|
|
||||||
while ((loc1 <= loc2)) {
|
|
||||||
proc_1 ();
|
|
||||||
loc1 = (loc1 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
printf ("finished\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,234 +0,0 @@
|
|||||||
LMOD@ PROC FAR
|
|
||||||
000 001EEB B90200 MOV cx, 2
|
|
||||||
002 001EF3 55 PUSH bp
|
|
||||||
003 001EF4 56 PUSH si
|
|
||||||
004 001EF5 57 PUSH di
|
|
||||||
005 001EF6 8BEC MOV bp, sp
|
|
||||||
006 001EF8 8BF9 MOV di, cx
|
|
||||||
007 001EFA 8B460A MOV ax, [bp+0Ah]
|
|
||||||
008 001EFD 8B560C MOV dx, [bp+0Ch]
|
|
||||||
009 001F00 8B5E0E MOV bx, [bp+0Eh]
|
|
||||||
010 001F03 8B4E10 MOV cx, [bp+10h]
|
|
||||||
011 001F06 0BC9 OR cx, cx
|
|
||||||
012 001F08 7508 JNE L1
|
|
||||||
013 001F0A 0BD2 OR dx, dx
|
|
||||||
014 001F0C 7469 JE L2
|
|
||||||
015 001F0E 0BDB OR bx, bx
|
|
||||||
016 001F10 7465 JE L2
|
|
||||||
|
|
||||||
017 001F12 F7C70100 L1: TEST di, 1
|
|
||||||
018 001F16 751C JNE L3
|
|
||||||
019 001F18 0BD2 OR dx, dx
|
|
||||||
020 001F1A 790A JNS L4
|
|
||||||
021 001F1C F7DA NEG dx
|
|
||||||
022 001F1E F7D8 NEG ax
|
|
||||||
023 001F20 83DA00 SBB dx, 0
|
|
||||||
024 001F23 83CF0C OR di, 0Ch
|
|
||||||
|
|
||||||
025 001F26 0BC9 L4: OR cx, cx
|
|
||||||
026 001F28 790A JNS L3
|
|
||||||
027 001F2A F7D9 NEG cx
|
|
||||||
028 001F2C F7DB NEG bx
|
|
||||||
029 001F2E 83D900 SBB cx, 0
|
|
||||||
030 001F31 83F704 XOR di, 4
|
|
||||||
|
|
||||||
031 001F34 8BE9 L3: MOV bp, cx
|
|
||||||
032 001F36 B92000 MOV cx, 20h
|
|
||||||
033 001F39 57 PUSH di
|
|
||||||
034 001F3A 33FF XOR di, di
|
|
||||||
035 001F3C 33F6 XOR si, si
|
|
||||||
|
|
||||||
036 001F3E D1E0 L5: SHL ax, 1
|
|
||||||
037 001F40 D1D2 RCL dx, 1
|
|
||||||
038 001F42 D1D6 RCL si, 1
|
|
||||||
039 001F44 D1D7 RCL di, 1
|
|
||||||
040 001F46 3BFD CMP di, bp
|
|
||||||
041 001F48 720B JB L6
|
|
||||||
042 001F4A 7704 JA L7
|
|
||||||
043 001F4C 3BF3 CMP si, bx
|
|
||||||
044 001F4E 7205 JB L6
|
|
||||||
|
|
||||||
045 001F50 2BF3 L7: SUB si, bx
|
|
||||||
046 001F52 1BFD SBB di, bp
|
|
||||||
047 001F54 40 INC ax
|
|
||||||
|
|
||||||
048 001F55 E2E7 L6: LOOP L5
|
|
||||||
049 001F57 5B POP bx
|
|
||||||
050 001F58 F7C30200 TEST bx, 2
|
|
||||||
051 001F5C 7406 JE L8
|
|
||||||
052 001F5E 8BC6 MOV ax, si
|
|
||||||
053 001F60 8BD7 MOV dx, di
|
|
||||||
054 001F62 D1EB SHR bx, 1
|
|
||||||
|
|
||||||
055 001F64 F7C30400 L8: TEST bx, 4
|
|
||||||
056 001F68 7407 JE L9
|
|
||||||
057 001F6A F7DA NEG dx
|
|
||||||
058 001F6C F7D8 NEG ax
|
|
||||||
059 001F6E 83DA00 SBB dx, 0
|
|
||||||
|
|
||||||
060 001F71 5F L9: POP di
|
|
||||||
061 001F72 5E POP si
|
|
||||||
062 001F73 5D POP bp
|
|
||||||
063 001F74 CA0800 RETF 8
|
|
||||||
|
|
||||||
064 L2: MOV tmp, dx:ax ;Synthetic inst
|
|
||||||
065 001F77 F7F3 DIV bx
|
|
||||||
066 MOD bx ;Synthetic inst
|
|
||||||
067 001F79 F7C70200 TEST di, 2
|
|
||||||
068 001F7D 7402 JE L10
|
|
||||||
069 001F7F 8BC2 MOV ax, dx
|
|
||||||
|
|
||||||
070 001F81 33D2 L10: XOR dx, dx
|
|
||||||
071 001F83 EBEC JMP L9
|
|
||||||
|
|
||||||
LMOD@ ENDP
|
|
||||||
|
|
||||||
main PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 83EC14 SUB sp, 14h
|
|
||||||
003 000300 8D46FC LEA ax, [bp-4]
|
|
||||||
004 000303 50 PUSH ax
|
|
||||||
005 000304 B89401 MOV ax, 194h
|
|
||||||
006 000307 50 PUSH ax
|
|
||||||
007 000308 E85D15 CALL near ptr scanf
|
|
||||||
008 00030B 59 POP cx
|
|
||||||
009 00030C 59 POP cx
|
|
||||||
010 00030D FF76FE PUSH word ptr [bp-2]
|
|
||||||
011 000310 FF76FC PUSH word ptr [bp-4]
|
|
||||||
012 000313 B89801 MOV ax, 198h
|
|
||||||
013 000316 50 PUSH ax
|
|
||||||
014 000317 E8C50C CALL near ptr printf
|
|
||||||
015 00031A 83C406 ADD sp, 6
|
|
||||||
016 00031D 8D46EC LEA ax, [bp-14h]
|
|
||||||
017 000320 50 PUSH ax
|
|
||||||
018 000321 B8B201 MOV ax, 1B2h
|
|
||||||
019 000324 50 PUSH ax
|
|
||||||
020 000325 E84015 CALL near ptr scanf
|
|
||||||
021 000328 59 POP cx
|
|
||||||
022 000329 59 POP cx
|
|
||||||
023 00032A 8D46F0 LEA ax, [bp-10h]
|
|
||||||
024 00032D 50 PUSH ax
|
|
||||||
025 00032E B8B601 MOV ax, 1B6h
|
|
||||||
026 000331 50 PUSH ax
|
|
||||||
027 000332 E83315 CALL near ptr scanf
|
|
||||||
028 000335 59 POP cx
|
|
||||||
029 000336 59 POP cx
|
|
||||||
030 000337 C746FA0000 MOV word ptr [bp-6], 0
|
|
||||||
031 00033C C746F80100 MOV word ptr [bp-8], 1
|
|
||||||
|
|
||||||
033 00042D 8B56FA L11: MOV dx, [bp-6]
|
|
||||||
034 000430 8B46F8 MOV ax, [bp-8]
|
|
||||||
035 000433 3B56FE CMP dx, [bp-2]
|
|
||||||
036 000436 7D03 JGE L12
|
|
||||||
|
|
||||||
038 000344 C746F60000 L13: MOV word ptr [bp-0Ah], 0
|
|
||||||
039 000349 C746F40100 MOV word ptr [bp-0Ch], 1
|
|
||||||
|
|
||||||
041 000411 837EF600 L14: CMP word ptr [bp-0Ah], 0
|
|
||||||
042 000415 7D03 JGE L15
|
|
||||||
|
|
||||||
044 000351 8B56EE L16: MOV dx, [bp-12h]
|
|
||||||
045 000354 8B46EC MOV ax, [bp-14h]
|
|
||||||
046 000357 0346F0 ADD ax, [bp-10h]
|
|
||||||
047 00035A 1356F2 ADC dx, [bp-0Eh]
|
|
||||||
048 00035D 0346F4 ADD ax, [bp-0Ch]
|
|
||||||
049 000360 1356F6 ADC dx, [bp-0Ah]
|
|
||||||
050 000363 8956EE MOV [bp-12h], dx
|
|
||||||
051 000366 8946EC MOV [bp-14h], ax
|
|
||||||
052 000369 8B56EE MOV dx, [bp-12h]
|
|
||||||
053 00036C 8B46EC MOV ax, [bp-14h]
|
|
||||||
054 00036F D1FA SAR dx, 1
|
|
||||||
055 000371 D1D8 RCR ax, 1
|
|
||||||
056 000373 8956F2 MOV [bp-0Eh], dx
|
|
||||||
057 000376 8946F0 MOV [bp-10h], ax
|
|
||||||
058 000379 33D2 XOR dx, dx
|
|
||||||
059 00037B B80A00 MOV ax, 0Ah
|
|
||||||
060 00037E 52 PUSH dx
|
|
||||||
061 00037F 50 PUSH ax
|
|
||||||
062 000380 FF76F2 PUSH word ptr [bp-0Eh]
|
|
||||||
063 000383 FF76F0 PUSH word ptr [bp-10h]
|
|
||||||
064 000386 9AEB1D1000 CALL far ptr LMOD@
|
|
||||||
065 00038B 8956EE MOV [bp-12h], dx
|
|
||||||
066 00038E 8946EC MOV [bp-14h], ax
|
|
||||||
067 000391 8B56F2 MOV dx, [bp-0Eh]
|
|
||||||
068 000394 8B46F0 MOV ax, [bp-10h]
|
|
||||||
069 000397 3B56F6 CMP dx, [bp-0Ah]
|
|
||||||
070 00039A 750A JNE L17
|
|
||||||
071 00039C 3B46F4 CMP ax, [bp-0Ch]
|
|
||||||
072 00039F 7505 JNE L17
|
|
||||||
073 0003A1 B80100 MOV ax, 1
|
|
||||||
|
|
||||||
075 0003A8 99 L18: CWD
|
|
||||||
076 0003A9 8956EE MOV [bp-12h], dx
|
|
||||||
077 0003AC 8946EC MOV [bp-14h], ax
|
|
||||||
078 0003AF 8B56EE MOV dx, [bp-12h]
|
|
||||||
079 0003B2 8B46EC MOV ax, [bp-14h]
|
|
||||||
080 0003B5 0B46F4 OR ax, [bp-0Ch]
|
|
||||||
081 0003B8 0B56F6 OR dx, [bp-0Ah]
|
|
||||||
082 0003BB 8956F2 MOV [bp-0Eh], dx
|
|
||||||
083 0003BE 8946F0 MOV [bp-10h], ax
|
|
||||||
084 0003C1 8B46F0 MOV ax, [bp-10h]
|
|
||||||
085 0003C4 0B46F2 OR ax, [bp-0Eh]
|
|
||||||
086 0003C7 7505 JNE L19
|
|
||||||
087 0003C9 B80100 MOV ax, 1
|
|
||||||
|
|
||||||
089 0003D0 99 L20: CWD
|
|
||||||
090 0003D1 8956EE MOV [bp-12h], dx
|
|
||||||
091 0003D4 8946EC MOV [bp-14h], ax
|
|
||||||
092 0003D7 8B56EE MOV dx, [bp-12h]
|
|
||||||
093 0003DA 8B46EC MOV ax, [bp-14h]
|
|
||||||
094 0003DD 0346F4 ADD ax, [bp-0Ch]
|
|
||||||
095 0003E0 1356F6 ADC dx, [bp-0Ah]
|
|
||||||
096 0003E3 8956F2 MOV [bp-0Eh], dx
|
|
||||||
097 0003E6 8946F0 MOV [bp-10h], ax
|
|
||||||
098 0003E9 8B56F2 MOV dx, [bp-0Eh]
|
|
||||||
099 0003EC 8B46F0 MOV ax, [bp-10h]
|
|
||||||
100 0003EF 3B56F6 CMP dx, [bp-0Ah]
|
|
||||||
101 0003F2 7C0C JL L21
|
|
||||||
102 0003F4 7F05 JG L22
|
|
||||||
103 0003F6 3B46F4 CMP ax, [bp-0Ch]
|
|
||||||
104 0003F9 7605 JBE L21
|
|
||||||
|
|
||||||
105 0003FB B80100 L22: MOV ax, 1
|
|
||||||
|
|
||||||
107 000402 99 L23: CWD
|
|
||||||
108 000403 8956EE MOV [bp-12h], dx
|
|
||||||
109 000406 8946EC MOV [bp-14h], ax
|
|
||||||
110 000409 8346F401 ADD word ptr [bp-0Ch], 1
|
|
||||||
111 00040D 8356F600 ADC word ptr [bp-0Ah], 0
|
|
||||||
112 JMP L14 ;Synthetic inst
|
|
||||||
|
|
||||||
113 000400 33C0 L21: XOR ax, ax
|
|
||||||
114 JMP L23 ;Synthetic inst
|
|
||||||
|
|
||||||
115 0003CE 33C0 L19: XOR ax, ax
|
|
||||||
116 JMP L20 ;Synthetic inst
|
|
||||||
|
|
||||||
117 0003A6 33C0 L17: XOR ax, ax
|
|
||||||
118 JMP L18 ;Synthetic inst
|
|
||||||
|
|
||||||
119 00041A 7F09 L15: JG L24
|
|
||||||
120 00041C 837EF428 CMP word ptr [bp-0Ch], 28h
|
|
||||||
121 000420 7703 JA L24
|
|
||||||
|
|
||||||
123 000425 8346F801 L24: ADD word ptr [bp-8], 1
|
|
||||||
124 000429 8356FA00 ADC word ptr [bp-6], 0
|
|
||||||
125 JMP L11 ;Synthetic inst
|
|
||||||
|
|
||||||
126 00043B 7F08 L12: JG L25
|
|
||||||
127 00043D 3B46FC CMP ax, [bp-4]
|
|
||||||
128 000440 7703 JA L25
|
|
||||||
|
|
||||||
130 000445 FF76EE L25: PUSH word ptr [bp-12h]
|
|
||||||
131 000448 FF76EC PUSH word ptr [bp-14h]
|
|
||||||
132 00044B B8BA01 MOV ax, 1BAh
|
|
||||||
133 00044E 50 PUSH ax
|
|
||||||
134 00044F E88D0B CALL near ptr printf
|
|
||||||
135 000452 83C406 ADD sp, 6
|
|
||||||
136 000455 8BE5 MOV sp, bp
|
|
||||||
137 000457 5D POP bp
|
|
||||||
138 000458 C3 RET
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,158 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/BENCHLNG.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
long LMOD@ (long arg0, int arg2, int arg3)
|
|
||||||
/* Takes 8 bytes of parameters.
|
|
||||||
* Runtime support routine of the compiler.
|
|
||||||
* Untranslatable routine. Assembler provided.
|
|
||||||
* Return value in registers dx:ax.
|
|
||||||
* Pascal calling convention.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
MOV cx, 2
|
|
||||||
PUSH bp
|
|
||||||
PUSH si
|
|
||||||
PUSH di
|
|
||||||
MOV bp, sp
|
|
||||||
MOV di, cx
|
|
||||||
MOV ax, [bp+0Ah]
|
|
||||||
MOV dx, [bp+0Ch]
|
|
||||||
MOV bx, [bp+0Eh]
|
|
||||||
MOV cx, [bp+10h]
|
|
||||||
CMP cx, 0
|
|
||||||
JNE L1
|
|
||||||
OR dx, dx
|
|
||||||
JE L2
|
|
||||||
OR bx, bx
|
|
||||||
JE L2
|
|
||||||
|
|
||||||
L1: TEST di, 1
|
|
||||||
JNE L3
|
|
||||||
OR dx, dx
|
|
||||||
JNS L4
|
|
||||||
NEG dx
|
|
||||||
NEG ax
|
|
||||||
SBB dx, 0
|
|
||||||
OR di, 0Ch
|
|
||||||
|
|
||||||
L4: OR cx, cx
|
|
||||||
JNS L3
|
|
||||||
NEG cx
|
|
||||||
NEG bx
|
|
||||||
SBB cx, 0
|
|
||||||
XOR di, 4
|
|
||||||
|
|
||||||
L3: MOV bp, cx
|
|
||||||
MOV cx, 20h
|
|
||||||
PUSH di
|
|
||||||
XOR di, 0
|
|
||||||
XOR si, 0
|
|
||||||
|
|
||||||
L5: SHL ax, 1
|
|
||||||
RCL dx, 1
|
|
||||||
RCL si, 1
|
|
||||||
RCL di, 1
|
|
||||||
CMP di, bp
|
|
||||||
JB L6
|
|
||||||
JA L7
|
|
||||||
CMP si, bx
|
|
||||||
JB L6
|
|
||||||
|
|
||||||
L7: SUB si, bx
|
|
||||||
SBB di, bp
|
|
||||||
INC ax
|
|
||||||
|
|
||||||
L6: LOOP L5
|
|
||||||
POP bx
|
|
||||||
TEST bx, 2
|
|
||||||
JE L8
|
|
||||||
MOV ax, si
|
|
||||||
MOV dx, di
|
|
||||||
SHR bx, 1
|
|
||||||
|
|
||||||
L8: TEST bx, 4
|
|
||||||
JE L9
|
|
||||||
NEG dx
|
|
||||||
NEG ax
|
|
||||||
SBB dx, 0
|
|
||||||
|
|
||||||
L9: POP di
|
|
||||||
POP si
|
|
||||||
POP bp
|
|
||||||
RETF 8
|
|
||||||
|
|
||||||
L2: MOV tmp, dx:ax ;Synthetic inst
|
|
||||||
DIV bx
|
|
||||||
MOD bx ;Synthetic inst
|
|
||||||
TEST di, 2
|
|
||||||
JE L10
|
|
||||||
MOV ax, dx
|
|
||||||
|
|
||||||
L10: XOR dx, dx
|
|
||||||
JMP L9
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
long loc1;
|
|
||||||
long loc2;
|
|
||||||
long loc3;
|
|
||||||
long loc4;
|
|
||||||
long loc5;
|
|
||||||
int loc6; /* ax */
|
|
||||||
|
|
||||||
scanf ("%ld", &loc0);
|
|
||||||
printf ("executing %ld iterations\n", loc5);
|
|
||||||
scanf ("%ld", &loc2);
|
|
||||||
scanf ("%ld", &loc3);
|
|
||||||
loc3 = 1;
|
|
||||||
|
|
||||||
while ((loc3 <= loc5)) {
|
|
||||||
loc2 = 1;
|
|
||||||
|
|
||||||
while ((loc2 <= 40)) {
|
|
||||||
loc4 = ((loc4 + loc1) + loc2);
|
|
||||||
loc1 = (loc4 >> 1);
|
|
||||||
loc4 = LMOD@ (loc1, 10);
|
|
||||||
|
|
||||||
if (loc1 == loc2) {
|
|
||||||
loc6 = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
loc6 = 0;
|
|
||||||
}
|
|
||||||
loc4 = loc6;
|
|
||||||
loc1 = (loc4 | loc2);
|
|
||||||
|
|
||||||
if ((loc3 | loc9) == 0) {
|
|
||||||
loc6 = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
loc6 = 0;
|
|
||||||
}
|
|
||||||
loc4 = loc6;
|
|
||||||
loc1 = (loc4 + loc2);
|
|
||||||
|
|
||||||
if (loc1 > loc2) {
|
|
||||||
loc6 = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
loc6 = 0;
|
|
||||||
}
|
|
||||||
loc4 = loc6;
|
|
||||||
loc2 = (loc2 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
loc3 = (loc3 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
printf ("a=%d\n", loc4);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
main PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 83EC0C SUB sp, 0Ch
|
|
||||||
003 000300 56 PUSH si
|
|
||||||
004 000301 B89401 MOV ax, 194h
|
|
||||||
005 000304 50 PUSH ax
|
|
||||||
006 000305 E8530C CALL near ptr printf
|
|
||||||
007 000308 59 POP cx
|
|
||||||
008 000309 8D46FC LEA ax, [bp-4]
|
|
||||||
009 00030C 50 PUSH ax
|
|
||||||
010 00030D B8B001 MOV ax, 1B0h
|
|
||||||
011 000310 50 PUSH ax
|
|
||||||
012 000311 E8D014 CALL near ptr scanf
|
|
||||||
013 000314 59 POP cx
|
|
||||||
014 000315 59 POP cx
|
|
||||||
015 000316 FF76FE PUSH word ptr [bp-2]
|
|
||||||
016 000319 FF76FC PUSH word ptr [bp-4]
|
|
||||||
017 00031C B8B401 MOV ax, 1B4h
|
|
||||||
018 00031F 50 PUSH ax
|
|
||||||
019 000320 E8380C CALL near ptr printf
|
|
||||||
020 000323 83C406 ADD sp, 6
|
|
||||||
021 000326 8D46F4 LEA ax, [bp-0Ch]
|
|
||||||
022 000329 50 PUSH ax
|
|
||||||
023 00032A B8CE01 MOV ax, 1CEh
|
|
||||||
024 00032D 50 PUSH ax
|
|
||||||
025 00032E E8B314 CALL near ptr scanf
|
|
||||||
026 000331 59 POP cx
|
|
||||||
027 000332 59 POP cx
|
|
||||||
028 000333 8D46F6 LEA ax, [bp-0Ah]
|
|
||||||
029 000336 50 PUSH ax
|
|
||||||
030 000337 B8D101 MOV ax, 1D1h
|
|
||||||
031 00033A 50 PUSH ax
|
|
||||||
032 00033B E8A614 CALL near ptr scanf
|
|
||||||
033 00033E 59 POP cx
|
|
||||||
034 00033F 59 POP cx
|
|
||||||
035 000340 C746FA0000 MOV word ptr [bp-6], 0
|
|
||||||
036 000345 C746F80100 MOV word ptr [bp-8], 1
|
|
||||||
|
|
||||||
038 0003B2 8B56FA L1: MOV dx, [bp-6]
|
|
||||||
039 0003B5 8B46F8 MOV ax, [bp-8]
|
|
||||||
040 0003B8 3B56FE CMP dx, [bp-2]
|
|
||||||
041 0003BB 7C8F JL L2
|
|
||||||
042 0003BD 7F05 JG L3
|
|
||||||
043 0003BF 3B46FC CMP ax, [bp-4]
|
|
||||||
044 0003C2 7688 JBE L2
|
|
||||||
|
|
||||||
045 0003C4 FF76F4 L3: PUSH word ptr [bp-0Ch]
|
|
||||||
046 0003C7 B8D401 MOV ax, 1D4h
|
|
||||||
047 0003CA 50 PUSH ax
|
|
||||||
048 0003CB E88D0B CALL near ptr printf
|
|
||||||
049 0003CE 59 POP cx
|
|
||||||
050 0003CF 59 POP cx
|
|
||||||
051 0003D0 5E POP si
|
|
||||||
052 0003D1 8BE5 MOV sp, bp
|
|
||||||
053 0003D3 5D POP bp
|
|
||||||
054 0003D4 C3 RET
|
|
||||||
|
|
||||||
055 00034C BE0100 L2: MOV si, 1
|
|
||||||
|
|
||||||
057 0003A5 83FE28 L4: CMP si, 28h
|
|
||||||
058 0003A8 7EA7 JLE L5
|
|
||||||
059 0003AA 8346F801 ADD word ptr [bp-8], 1
|
|
||||||
060 0003AE 8356FA00 ADC word ptr [bp-6], 0
|
|
||||||
061 JMP L1 ;Synthetic inst
|
|
||||||
|
|
||||||
062 000351 8B46F4 L5: MOV ax, [bp-0Ch]
|
|
||||||
063 000354 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
064 000357 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
065 00035A F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
066 00035D F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
067 000360 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
068 000363 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
069 000366 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
070 000369 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
071 00036C F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
072 00036F F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
073 000372 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
074 000375 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
075 000378 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
076 00037B F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
077 00037E F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
078 000381 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
079 000384 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
080 000387 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
081 00038A F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
082 00038D F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
083 000390 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
084 000393 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
085 000396 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
086 000399 F766F4 MUL word ptr [bp-0Ch]
|
|
||||||
087 00039C BA0300 MOV dx, 3
|
|
||||||
088 00039F F7E2 MUL dx
|
|
||||||
089 0003A1 8946F4 MOV [bp-0Ch], ax
|
|
||||||
090 0003A4 46 INC si
|
|
||||||
091 JMP L4 ;Synthetic inst
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/BENCHMUL.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
int loc2;
|
|
||||||
long loc3;
|
|
||||||
long loc4;
|
|
||||||
int loc5;
|
|
||||||
|
|
||||||
printf ("enter number of iterations\n");
|
|
||||||
scanf ("%ld", &loc0);
|
|
||||||
printf ("executing %ld iterations\n", loc4);
|
|
||||||
scanf ("%d", &loc1);
|
|
||||||
scanf ("%d", &loc2);
|
|
||||||
loc3 = 1;
|
|
||||||
|
|
||||||
while ((loc3 <= loc4)) {
|
|
||||||
loc5 = 1;
|
|
||||||
|
|
||||||
while ((loc5 <= 40)) {
|
|
||||||
loc1 = (((((((((((((((((((((((((loc1 * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * loc1) * 3);
|
|
||||||
loc5 = (loc5 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
loc3 = (loc3 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
printf ("a=%d\n", loc1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
main PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 83EC0A SUB sp, 0Ah
|
|
||||||
003 000300 56 PUSH si
|
|
||||||
004 000301 57 PUSH di
|
|
||||||
005 000302 B8A801 MOV ax, 1A8h
|
|
||||||
006 000305 50 PUSH ax
|
|
||||||
007 000306 E8240C CALL near ptr printf
|
|
||||||
008 000309 59 POP cx
|
|
||||||
009 00030A 8D46FC LEA ax, [bp-4]
|
|
||||||
010 00030D 50 PUSH ax
|
|
||||||
011 00030E B8C401 MOV ax, 1C4h
|
|
||||||
012 000311 50 PUSH ax
|
|
||||||
013 000312 E8A114 CALL near ptr scanf
|
|
||||||
014 000315 59 POP cx
|
|
||||||
015 000316 59 POP cx
|
|
||||||
016 000317 FF76FE PUSH word ptr [bp-2]
|
|
||||||
017 00031A FF76FC PUSH word ptr [bp-4]
|
|
||||||
018 00031D B8C801 MOV ax, 1C8h
|
|
||||||
019 000320 50 PUSH ax
|
|
||||||
020 000321 E8090C CALL near ptr printf
|
|
||||||
021 000324 83C406 ADD sp, 6
|
|
||||||
022 000327 BE1400 MOV si, 14h
|
|
||||||
023 00032A 8976F6 MOV [bp-0Ah], si
|
|
||||||
024 00032D C746FA0000 MOV word ptr [bp-6], 0
|
|
||||||
025 000332 C746F80100 MOV word ptr [bp-8], 1
|
|
||||||
|
|
||||||
027 000385 8B56FA L1: MOV dx, [bp-6]
|
|
||||||
028 000388 8B46F8 MOV ax, [bp-8]
|
|
||||||
029 00038B 3B56FE CMP dx, [bp-2]
|
|
||||||
030 00038E 7CA9 JL L2
|
|
||||||
031 000390 7F05 JG L3
|
|
||||||
032 000392 3B46FC CMP ax, [bp-4]
|
|
||||||
033 000395 76A2 JBE L2
|
|
||||||
|
|
||||||
034 000397 56 L3: PUSH si
|
|
||||||
035 000398 B8E201 MOV ax, 1E2h
|
|
||||||
036 00039B 50 PUSH ax
|
|
||||||
037 00039C E88E0B CALL near ptr printf
|
|
||||||
038 00039F 59 POP cx
|
|
||||||
039 0003A0 59 POP cx
|
|
||||||
040 0003A1 5F POP di
|
|
||||||
041 0003A2 5E POP si
|
|
||||||
042 0003A3 8BE5 MOV sp, bp
|
|
||||||
043 0003A5 5D POP bp
|
|
||||||
044 0003A6 C3 RET
|
|
||||||
|
|
||||||
045 000339 BF0100 L2: MOV di, 1
|
|
||||||
|
|
||||||
047 000378 83FF28 L4: CMP di, 28h
|
|
||||||
048 00037B 7EC1 JLE L5
|
|
||||||
049 00037D 8346F801 ADD word ptr [bp-8], 1
|
|
||||||
050 000381 8356FA00 ADC word ptr [bp-6], 0
|
|
||||||
051 JMP L1 ;Synthetic inst
|
|
||||||
|
|
||||||
052 00033E 8BC6 L5: MOV ax, si
|
|
||||||
053 000340 F7E6 MUL si
|
|
||||||
054 000342 F7E6 MUL si
|
|
||||||
055 000344 F7E6 MUL si
|
|
||||||
056 000346 F7E6 MUL si
|
|
||||||
057 000348 F7E6 MUL si
|
|
||||||
058 00034A F7E6 MUL si
|
|
||||||
059 00034C F7E6 MUL si
|
|
||||||
060 00034E F7E6 MUL si
|
|
||||||
061 000350 F7E6 MUL si
|
|
||||||
062 000352 F7E6 MUL si
|
|
||||||
063 000354 F7E6 MUL si
|
|
||||||
064 000356 F7E6 MUL si
|
|
||||||
065 000358 F7E6 MUL si
|
|
||||||
066 00035A F7E6 MUL si
|
|
||||||
067 00035C F7E6 MUL si
|
|
||||||
068 00035E F7E6 MUL si
|
|
||||||
069 000360 F7E6 MUL si
|
|
||||||
070 000362 F7E6 MUL si
|
|
||||||
071 000364 F7E6 MUL si
|
|
||||||
072 000366 F7E6 MUL si
|
|
||||||
073 000368 F7E6 MUL si
|
|
||||||
074 00036A F7E6 MUL si
|
|
||||||
075 00036C F7E6 MUL si
|
|
||||||
076 00036E F7E6 MUL si
|
|
||||||
077 000370 BA0300 MOV dx, 3
|
|
||||||
078 000373 F7E2 MUL dx
|
|
||||||
079 000375 8BF0 MOV si, ax
|
|
||||||
080 000377 47 INC di
|
|
||||||
081 JMP L4 ;Synthetic inst
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/BENCHMUS.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
long loc2;
|
|
||||||
long loc3;
|
|
||||||
int loc4;
|
|
||||||
int loc5;
|
|
||||||
|
|
||||||
printf ("enter number of iterations\n");
|
|
||||||
scanf ("%ld", &loc0);
|
|
||||||
printf ("executing %ld iterations\n", loc3);
|
|
||||||
loc4 = 20;
|
|
||||||
loc1 = loc4;
|
|
||||||
loc2 = 1;
|
|
||||||
|
|
||||||
while ((loc2 <= loc3)) {
|
|
||||||
loc5 = 1;
|
|
||||||
|
|
||||||
while ((loc5 <= 40)) {
|
|
||||||
loc4 = (((((((((((((((((((((((((loc4 * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * loc4) * 3);
|
|
||||||
loc5 = (loc5 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
loc2 = (loc2 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
printf ("a=%d\n", loc4);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,109 +0,0 @@
|
|||||||
main PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 83EC0E SUB sp, 0Eh
|
|
||||||
003 000300 8D46FC LEA ax, [bp-4]
|
|
||||||
004 000303 50 PUSH ax
|
|
||||||
005 000304 B89401 MOV ax, 194h
|
|
||||||
006 000307 50 PUSH ax
|
|
||||||
007 000308 E8E914 CALL near ptr scanf
|
|
||||||
008 00030B 59 POP cx
|
|
||||||
009 00030C 59 POP cx
|
|
||||||
010 00030D FF76FE PUSH word ptr [bp-2]
|
|
||||||
011 000310 FF76FC PUSH word ptr [bp-4]
|
|
||||||
012 000313 B89801 MOV ax, 198h
|
|
||||||
013 000316 50 PUSH ax
|
|
||||||
014 000317 E8510C CALL near ptr printf
|
|
||||||
015 00031A 83C406 ADD sp, 6
|
|
||||||
016 00031D 8D46F2 LEA ax, [bp-0Eh]
|
|
||||||
017 000320 50 PUSH ax
|
|
||||||
018 000321 B8B201 MOV ax, 1B2h
|
|
||||||
019 000324 50 PUSH ax
|
|
||||||
020 000325 E8CC14 CALL near ptr scanf
|
|
||||||
021 000328 59 POP cx
|
|
||||||
022 000329 59 POP cx
|
|
||||||
023 00032A 8D46F4 LEA ax, [bp-0Ch]
|
|
||||||
024 00032D 50 PUSH ax
|
|
||||||
025 00032E B8B601 MOV ax, 1B6h
|
|
||||||
026 000331 50 PUSH ax
|
|
||||||
027 000332 E8BF14 CALL near ptr scanf
|
|
||||||
028 000335 59 POP cx
|
|
||||||
029 000336 59 POP cx
|
|
||||||
030 000337 C746FA0000 MOV word ptr [bp-6], 0
|
|
||||||
031 00033C C746F80100 MOV word ptr [bp-8], 1
|
|
||||||
|
|
||||||
033 0003BD 8B56FA L1: MOV dx, [bp-6]
|
|
||||||
034 0003C0 8B46F8 MOV ax, [bp-8]
|
|
||||||
035 0003C3 3B56FE CMP dx, [bp-2]
|
|
||||||
036 0003C6 7D03 JGE L2
|
|
||||||
|
|
||||||
038 000344 C746F60100 L3: MOV word ptr [bp-0Ah], 1
|
|
||||||
|
|
||||||
040 0003AF 837EF628 L4: CMP word ptr [bp-0Ah], 28h
|
|
||||||
041 0003B3 7E96 JLE L5
|
|
||||||
042 0003B5 8346F801 ADD word ptr [bp-8], 1
|
|
||||||
043 0003B9 8356FA00 ADC word ptr [bp-6], 0
|
|
||||||
044 JMP L1 ;Synthetic inst
|
|
||||||
|
|
||||||
045 00034B 8B46F2 L5: MOV ax, [bp-0Eh]
|
|
||||||
046 00034E 0346F4 ADD ax, [bp-0Ch]
|
|
||||||
047 000351 0346F6 ADD ax, [bp-0Ah]
|
|
||||||
048 000354 8946F2 MOV [bp-0Eh], ax
|
|
||||||
049 000357 8B46F2 MOV ax, [bp-0Eh]
|
|
||||||
050 00035A D1F8 SAR ax, 1
|
|
||||||
051 00035C 8946F4 MOV [bp-0Ch], ax
|
|
||||||
052 00035F 8B46F4 MOV ax, [bp-0Ch]
|
|
||||||
053 000362 BB0A00 MOV bx, 0Ah
|
|
||||||
054 000365 99 CWD
|
|
||||||
055 MOV tmp, dx:ax ;Synthetic inst
|
|
||||||
056 000366 F7FB IDIV bx
|
|
||||||
057 MOD bx ;Synthetic inst
|
|
||||||
058 000368 8956F2 MOV [bp-0Eh], dx
|
|
||||||
059 00036B 8B46F4 MOV ax, [bp-0Ch]
|
|
||||||
060 00036E 3B46F6 CMP ax, [bp-0Ah]
|
|
||||||
061 000371 7505 JNE L6
|
|
||||||
062 000373 B80100 MOV ax, 1
|
|
||||||
|
|
||||||
064 00037A 8946F2 L7: MOV [bp-0Eh], ax
|
|
||||||
065 00037D 8B46F2 MOV ax, [bp-0Eh]
|
|
||||||
066 000380 0B46F6 OR ax, [bp-0Ah]
|
|
||||||
067 000383 8946F4 MOV [bp-0Ch], ax
|
|
||||||
068 000386 8B46F4 MOV ax, [bp-0Ch]
|
|
||||||
069 000389 F7D8 NEG ax
|
|
||||||
070 00038B 1BC0 SBB ax, ax
|
|
||||||
071 00038D 40 INC ax
|
|
||||||
072 00038E 8946F2 MOV [bp-0Eh], ax
|
|
||||||
073 000391 8B46F2 MOV ax, [bp-0Eh]
|
|
||||||
074 000394 0346F6 ADD ax, [bp-0Ah]
|
|
||||||
075 000397 8946F4 MOV [bp-0Ch], ax
|
|
||||||
076 00039A 8B46F4 MOV ax, [bp-0Ch]
|
|
||||||
077 00039D 3B46F6 CMP ax, [bp-0Ah]
|
|
||||||
078 0003A0 7E05 JLE L8
|
|
||||||
079 0003A2 B80100 MOV ax, 1
|
|
||||||
|
|
||||||
081 0003A9 8946F2 L9: MOV [bp-0Eh], ax
|
|
||||||
082 0003AC FF46F6 INC word ptr [bp-0Ah]
|
|
||||||
083 JMP L4 ;Synthetic inst
|
|
||||||
|
|
||||||
084 0003A7 33C0 L8: XOR ax, ax
|
|
||||||
085 JMP L9 ;Synthetic inst
|
|
||||||
|
|
||||||
086 000378 33C0 L6: XOR ax, ax
|
|
||||||
087 JMP L7 ;Synthetic inst
|
|
||||||
|
|
||||||
088 0003CB 7F08 L2: JG L10
|
|
||||||
089 0003CD 3B46FC CMP ax, [bp-4]
|
|
||||||
090 0003D0 7703 JA L10
|
|
||||||
|
|
||||||
092 0003D5 FF76F2 L10: PUSH word ptr [bp-0Eh]
|
|
||||||
093 0003D8 B8BA01 MOV ax, 1BAh
|
|
||||||
094 0003DB 50 PUSH ax
|
|
||||||
095 0003DC E88C0B CALL near ptr printf
|
|
||||||
096 0003DF 59 POP cx
|
|
||||||
097 0003E0 59 POP cx
|
|
||||||
098 0003E1 8BE5 MOV sp, bp
|
|
||||||
099 0003E3 5D POP bp
|
|
||||||
100 0003E4 C3 RET
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/BENCHSHO.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
int loc2;
|
|
||||||
int loc3;
|
|
||||||
long loc4;
|
|
||||||
long loc5;
|
|
||||||
int loc6; /* ax */
|
|
||||||
|
|
||||||
scanf ("%ld", &loc0);
|
|
||||||
printf ("executing %ld iterations\n", loc5);
|
|
||||||
scanf ("%ld", &loc1);
|
|
||||||
scanf ("%ld", &loc2);
|
|
||||||
loc4 = 1;
|
|
||||||
|
|
||||||
while ((loc4 <= loc5)) {
|
|
||||||
loc3 = 1;
|
|
||||||
|
|
||||||
while ((loc3 <= 40)) {
|
|
||||||
loc1 = ((loc1 + loc2) + loc3);
|
|
||||||
loc2 = (loc1 >> 1);
|
|
||||||
loc1 = (loc2 % 10);
|
|
||||||
|
|
||||||
if (loc2 == loc3) {
|
|
||||||
loc6 = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
loc6 = 0;
|
|
||||||
}
|
|
||||||
loc1 = loc6;
|
|
||||||
loc2 = (loc1 | loc3);
|
|
||||||
loc1 = !loc2;
|
|
||||||
loc2 = (loc1 + loc3);
|
|
||||||
|
|
||||||
if (loc2 > loc3) {
|
|
||||||
loc6 = 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
loc6 = 0;
|
|
||||||
}
|
|
||||||
loc1 = loc6;
|
|
||||||
loc3 = (loc3 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
loc4 = (loc4 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
printf ("a=%d\n", loc1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
main PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 83EC02 SUB sp, 2
|
|
||||||
003 000300 C646FEFF MOV byte ptr [bp-2], 0FFh
|
|
||||||
004 000304 C646FF8F MOV byte ptr [bp-1], 8Fh
|
|
||||||
005 000308 8A46FE MOV al, [bp-2]
|
|
||||||
006 00030B 0246FF ADD al, [bp-1]
|
|
||||||
007 00030E 8846FF MOV [bp-1], al
|
|
||||||
008 000311 8A46FE MOV al, [bp-2]
|
|
||||||
009 000314 2A46FF SUB al, [bp-1]
|
|
||||||
010 000317 8846FE MOV [bp-2], al
|
|
||||||
011 00031A 8A46FE MOV al, [bp-2]
|
|
||||||
012 00031D B400 MOV ah, 0
|
|
||||||
013 00031F 8A56FF MOV dl, [bp-1]
|
|
||||||
014 000322 B600 MOV dh, 0
|
|
||||||
015 000324 F7E2 MUL dx
|
|
||||||
016 000326 8846FE MOV [bp-2], al
|
|
||||||
017 000329 8A46FF MOV al, [bp-1]
|
|
||||||
018 00032C B400 MOV ah, 0
|
|
||||||
019 00032E 8A56FE MOV dl, [bp-2]
|
|
||||||
020 000331 B600 MOV dh, 0
|
|
||||||
021 000333 8BDA MOV bx, dx
|
|
||||||
022 000335 99 CWD
|
|
||||||
023 MOV tmp, dx:ax ;Synthetic inst
|
|
||||||
024 000336 F7FB IDIV bx
|
|
||||||
025 MOD bx ;Synthetic inst
|
|
||||||
026 000338 8846FF MOV [bp-1], al
|
|
||||||
027 00033B 8A46FF MOV al, [bp-1]
|
|
||||||
028 00033E B400 MOV ah, 0
|
|
||||||
029 000340 8A56FE MOV dl, [bp-2]
|
|
||||||
030 000343 B600 MOV dh, 0
|
|
||||||
031 000345 8BDA MOV bx, dx
|
|
||||||
032 000347 99 CWD
|
|
||||||
033 MOV tmp, dx:ax ;Synthetic inst
|
|
||||||
034 000348 F7FB IDIV bx
|
|
||||||
035 MOD bx ;Synthetic inst
|
|
||||||
036 00034A 8856FF MOV [bp-1], dl
|
|
||||||
037 00034D 8A46FE MOV al, [bp-2]
|
|
||||||
038 000350 B105 MOV cl, 5
|
|
||||||
039 000352 D2E0 SHL al, cl
|
|
||||||
040 000354 8846FE MOV [bp-2], al
|
|
||||||
041 000357 8A46FF MOV al, [bp-1]
|
|
||||||
042 00035A 8A4EFE MOV cl, [bp-2]
|
|
||||||
043 00035D D2E8 SHR al, cl
|
|
||||||
044 00035F 8846FF MOV [bp-1], al
|
|
||||||
045 000362 8A46FF MOV al, [bp-1]
|
|
||||||
046 000365 B400 MOV ah, 0
|
|
||||||
047 000367 50 PUSH ax
|
|
||||||
048 000368 8A46FE MOV al, [bp-2]
|
|
||||||
049 00036B B400 MOV ah, 0
|
|
||||||
050 00036D 50 PUSH ax
|
|
||||||
051 00036E B89401 MOV ax, 194h
|
|
||||||
052 000371 50 PUSH ax
|
|
||||||
053 000372 E8AB06 CALL near ptr printf
|
|
||||||
054 000375 83C406 ADD sp, 6
|
|
||||||
055 000378 8BE5 MOV sp, bp
|
|
||||||
056 00037A 5D POP bp
|
|
||||||
057 00037B C3 RET
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/BYTEOPS.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
int loc2;
|
|
||||||
|
|
||||||
loc1 = 255;
|
|
||||||
loc2 = 143;
|
|
||||||
loc2 = (loc1 + loc2);
|
|
||||||
loc1 = (loc1 - loc2);
|
|
||||||
loc1 = (loc1 * loc2);
|
|
||||||
loc2 = (loc2 / loc1);
|
|
||||||
loc2 = (loc2 % loc1);
|
|
||||||
loc1 = (loc1 << 5);
|
|
||||||
loc2 = (loc2 >> loc1);
|
|
||||||
printf ("a = %d, b = %d\n", loc1, loc2);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,88 +0,0 @@
|
|||||||
proc_1 PROC NEAR
|
|
||||||
000 00035B 55 PUSH bp
|
|
||||||
001 00035C 8BEC MOV bp, sp
|
|
||||||
002 00035E 56 PUSH si
|
|
||||||
003 00035F 8B7604 MOV si, [bp+4]
|
|
||||||
004 000362 83FE02 CMP si, 2
|
|
||||||
005 000365 7E1C JLE L1
|
|
||||||
006 000367 8BC6 MOV ax, si
|
|
||||||
007 000369 48 DEC ax
|
|
||||||
008 00036A 50 PUSH ax
|
|
||||||
009 00036B E8EDFF CALL near ptr proc_1
|
|
||||||
010 00036E 59 POP cx
|
|
||||||
011 00036F 50 PUSH ax
|
|
||||||
012 000370 8BC6 MOV ax, si
|
|
||||||
013 000372 05FEFF ADD ax, 0FFFEh
|
|
||||||
014 000375 50 PUSH ax
|
|
||||||
015 000376 E8E2FF CALL near ptr proc_1
|
|
||||||
016 000379 59 POP cx
|
|
||||||
017 00037A 8BD0 MOV dx, ax
|
|
||||||
018 00037C 58 POP ax
|
|
||||||
019 00037D 03C2 ADD ax, dx
|
|
||||||
|
|
||||||
021 000388 5E L2: POP si
|
|
||||||
022 000389 5D POP bp
|
|
||||||
023 00038A C3 RET
|
|
||||||
|
|
||||||
024 000383 B80100 L1: MOV ax, 1
|
|
||||||
025 000386 EB00 JMP L2
|
|
||||||
|
|
||||||
proc_1 ENDP
|
|
||||||
|
|
||||||
main PROC NEAR
|
|
||||||
000 0002FA 55 PUSH bp
|
|
||||||
001 0002FB 8BEC MOV bp, sp
|
|
||||||
002 0002FD 83EC04 SUB sp, 4
|
|
||||||
003 000300 56 PUSH si
|
|
||||||
004 000301 57 PUSH di
|
|
||||||
005 000302 B89401 MOV ax, 194h
|
|
||||||
006 000305 50 PUSH ax
|
|
||||||
007 000306 E8080C CALL near ptr printf
|
|
||||||
008 000309 59 POP cx
|
|
||||||
009 00030A 8D46FC LEA ax, [bp-4]
|
|
||||||
010 00030D 50 PUSH ax
|
|
||||||
011 00030E B8B101 MOV ax, 1B1h
|
|
||||||
012 000311 50 PUSH ax
|
|
||||||
013 000312 E88514 CALL near ptr scanf
|
|
||||||
014 000315 59 POP cx
|
|
||||||
015 000316 59 POP cx
|
|
||||||
016 000317 BE0100 MOV si, 1
|
|
||||||
|
|
||||||
018 000349 3B76FC L3: CMP si, [bp-4]
|
|
||||||
019 00034C 7ECE JLE L4
|
|
||||||
020 00034E 33C0 XOR ax, ax
|
|
||||||
021 000350 50 PUSH ax
|
|
||||||
022 000351 E87300 CALL near ptr exit
|
|
||||||
023 000354 59 POP cx
|
|
||||||
024 000355 5F POP di
|
|
||||||
025 000356 5E POP si
|
|
||||||
026 000357 8BE5 MOV sp, bp
|
|
||||||
027 000359 5D POP bp
|
|
||||||
028 00035A C3 RET
|
|
||||||
|
|
||||||
029 00031C B8B401 L4: MOV ax, 1B4h
|
|
||||||
030 00031F 50 PUSH ax
|
|
||||||
031 000320 E8EE0B CALL near ptr printf
|
|
||||||
032 000323 59 POP cx
|
|
||||||
033 000324 8D46FE LEA ax, [bp-2]
|
|
||||||
034 000327 50 PUSH ax
|
|
||||||
035 000328 B8C301 MOV ax, 1C3h
|
|
||||||
036 00032B 50 PUSH ax
|
|
||||||
037 00032C E86B14 CALL near ptr scanf
|
|
||||||
038 00032F 59 POP cx
|
|
||||||
039 000330 59 POP cx
|
|
||||||
040 000331 FF76FE PUSH word ptr [bp-2]
|
|
||||||
041 000334 E82400 CALL near ptr proc_1
|
|
||||||
042 000337 59 POP cx
|
|
||||||
043 000338 8BF8 MOV di, ax
|
|
||||||
044 00033A 57 PUSH di
|
|
||||||
045 00033B FF76FE PUSH word ptr [bp-2]
|
|
||||||
046 00033E B8C601 MOV ax, 1C6h
|
|
||||||
047 000341 50 PUSH ax
|
|
||||||
048 000342 E8CC0B CALL near ptr printf
|
|
||||||
049 000345 83C406 ADD sp, 6
|
|
||||||
050 000348 46 INC si
|
|
||||||
051 JMP L3 ;Synthetic inst
|
|
||||||
|
|
||||||
main ENDP
|
|
||||||
|
|
||||||
@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/FIBOS.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
int proc_1 (int arg0)
|
|
||||||
/* Takes 2 bytes of parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
* C calling convention.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
int loc2; /* ax */
|
|
||||||
|
|
||||||
loc1 = arg0;
|
|
||||||
|
|
||||||
if (loc1 > 2) {
|
|
||||||
loc2 = (proc_1 ((loc1 - 1)) + proc_1 ((loc1 + 0xfffe)));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
loc2 = 1;
|
|
||||||
}
|
|
||||||
return (loc2);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void main ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
int loc2;
|
|
||||||
int loc3;
|
|
||||||
int loc4;
|
|
||||||
|
|
||||||
printf ("Input number of iterations: ");
|
|
||||||
scanf ("%d", &loc1);
|
|
||||||
loc3 = 1;
|
|
||||||
|
|
||||||
while ((loc3 <= loc1)) {
|
|
||||||
printf ("Input number: ");
|
|
||||||
scanf ("%d", &loc2);
|
|
||||||
loc4 = proc_1 (loc2);
|
|
||||||
printf ("fibonacci(%d) = %u\n", loc2, loc4);
|
|
||||||
loc3 = (loc3 + 1);
|
|
||||||
} /* end of while */
|
|
||||||
exit (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
PROC NEAR
|
|
||||||
000 000100 55 PUSH bp
|
|
||||||
001 000101 8BEC MOV bp, sp
|
|
||||||
002 000103 83EC02 SUB sp, 2
|
|
||||||
003 000106 C746FE0000 MOV word ptr [bp-2], 0
|
|
||||||
004 00010B 8B46FE MOV ax, [bp-2]
|
|
||||||
005 00010E 3D0600 CMP ax, 6
|
|
||||||
006 000111 7735 JA L1
|
|
||||||
007 000113 8BD8 MOV bx, ax
|
|
||||||
008 000115 D1E3 SHL bx, 1
|
|
||||||
009 000117 2EFFA71C00 JMP word ptr cs:[bx+1Ch];Switch
|
|
||||||
|
|
||||||
010 00012A B80200 MOV ax, 2 ;Case l0
|
|
||||||
|
|
||||||
012 00014D 8BE5 L2: MOV sp, bp
|
|
||||||
013 00014F 5D POP bp
|
|
||||||
014 000150 C3 RET
|
|
||||||
|
|
||||||
015 00012F B80300 MOV ax, 3 ;Case l1
|
|
||||||
016 000132 EB19 JMP L2
|
|
||||||
|
|
||||||
017 000134 B80700 MOV ax, 7 ;Case l2
|
|
||||||
018 000137 EB14 JMP L2
|
|
||||||
|
|
||||||
019 000139 B80D00 MOV ax, 0Dh ;Case l3
|
|
||||||
020 00013C EB0F JMP L2
|
|
||||||
|
|
||||||
021 000148 B82C00 L1: MOV ax, 2Ch ;Case l4
|
|
||||||
022 00014B EB00 JMP L2
|
|
||||||
|
|
||||||
023 00013E B81700 MOV ax, 17h ;Case l5
|
|
||||||
024 000141 EB0A JMP L2
|
|
||||||
|
|
||||||
025 000143 B80D00 MOV ax, 0Dh ;Case l6
|
|
||||||
026 000146 EB05 JMP L2
|
|
||||||
|
|
||||||
ENDP
|
|
||||||
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* Input file : ./tests/inputs/MIN.EXE
|
|
||||||
* File type : EXE
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "dcc.h"
|
|
||||||
|
|
||||||
|
|
||||||
void ()
|
|
||||||
/* Takes no parameters.
|
|
||||||
* High-level language prologue code.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int loc1;
|
|
||||||
int loc2; /* ax */
|
|
||||||
int loc3; /* bx */
|
|
||||||
|
|
||||||
loc1 = 0;
|
|
||||||
loc2 = loc1;
|
|
||||||
|
|
||||||
if (loc2 <= 6) {
|
|
||||||
loc3 = loc2;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user