Browse Source

Test input switching scripts

Artur K 12 years ago
parent
commit
15deb26f2b

+ 7 - 0
covproc.sh

@@ -0,0 +1,7 @@
+#!/bin/sh
+lcov -z -d bld/CMakeFiles/dcc_original.dir/src
+./regression_tester.rb bld/dcc_original -a2 -m -s -c -V
+lcov -c -d bld/CMakeFiles/dcc_original.dir/src -o cover1.info
+lcov -e cover1.info *dcc_* -o cover2.info
+genhtml -o coverage -f --demangle-cpp cover2.info
+

+ 5 - 0
test_use_all.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+rm tests/prev
+rm tests/inputs
+ln -s inputs_all tests/inputs
+ln -s prev_all tests/prev

+ 5 - 0
test_use_base.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+rm tests/prev
+rm tests/inputs
+ln -s inputs_base tests/inputs
+ln -s prev_base tests/prev

BIN
tests/inputs_base/BENCHFN.EXE


BIN
tests/inputs_base/BENCHLNG.EXE


BIN
tests/inputs_base/BENCHMUL.EXE


BIN
tests/inputs_base/BENCHMUS.EXE


BIN
tests/inputs_base/BENCHSHO.EXE


BIN
tests/inputs_base/BYTEOPS.EXE


BIN
tests/inputs_base/FIBOS.EXE


BIN
tests/inputs_base/MIN.EXE


+ 109 - 0
tests/prev_base/BENCHFN.EXE.a1

@@ -0,0 +1,109 @@
+		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 
+022 00039A EB0B                JMP            L1                 
+
+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
+
+		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
+
+		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_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_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
+

+ 108 - 0
tests/prev_base/BENCHFN.EXE.a2

@@ -0,0 +1,108 @@
+		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
+

+ 89 - 0
tests/prev_base/BENCHFN.b

@@ -0,0 +1,89 @@
+/*
+ * 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");
+}
+

+ 242 - 0
tests/prev_base/BENCHLNG.EXE.a1

@@ -0,0 +1,242 @@
+		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 
+032 000341 E9E900              JMP            L1                 
+
+033 00042D 8B56FA         L1:  MOV            dx, [bp-6]         
+034 000430 8B46F8              MOV            ax, [bp-8]         
+035 000433 3B56FE              CMP            dx, [bp-2]         
+036 000436 7D03                JGE            L2                 
+037 000438 E909FF              JMP            L3                 
+
+038 000344 C746F60000     L3:  MOV            word ptr [bp-0Ah], 0
+039 000349 C746F40100          MOV            word ptr [bp-0Ch], 1
+040 00034E E9C000              JMP            L4                 
+
+041 000411 837EF600       L4:  CMP            word ptr [bp-0Ah], 0
+042 000415 7D03                JGE            L5                 
+043 000417 E937FF              JMP            L6                 
+
+044 000351 8B56EE         L6:  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            L7                 
+071 00039C 3B46F4              CMP            ax, [bp-0Ch]       
+072 00039F 7505                JNE            L7                 
+073 0003A1 B80100              MOV            ax, 1              
+074 0003A4 EB02                JMP            L8                 
+
+075 0003A8 99             L8:  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            L9                 
+087 0003C9 B80100              MOV            ax, 1              
+088 0003CC EB02                JMP            L10                
+
+089 0003D0 99             L10: 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             L11                
+102 0003F4 7F05                JG             L12                
+103 0003F6 3B46F4              CMP            ax, [bp-0Ch]       
+104 0003F9 7605                JBE            L11                
+
+105 0003FB B80100         L12: MOV            ax, 1              
+106 0003FE EB02                JMP            L13                
+
+107 000402 99             L13: 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            L4                 ;Synthetic inst
+
+113 000400 33C0           L11: XOR            ax, ax             
+114                            JMP            L13                ;Synthetic inst
+
+115 0003CE 33C0           L9:  XOR            ax, ax             
+116                            JMP            L10                ;Synthetic inst
+
+117 0003A6 33C0           L7:  XOR            ax, ax             
+118                            JMP            L8                 ;Synthetic inst
+
+119 00041A 7F09           L5:  JG             L14                
+120 00041C 837EF428            CMP            word ptr [bp-0Ch], 28h
+121 000420 7703                JA             L14                
+122 000422 E92CFF              JMP            L6                 
+
+123 000425 8346F801       L14: ADD            word ptr [bp-8], 1 
+124 000429 8356FA00            ADC            word ptr [bp-6], 0 
+125                            JMP            L1                 ;Synthetic inst
+
+126 00043B 7F08           L2:  JG             L15                
+127 00043D 3B46FC              CMP            ax, [bp-4]         
+128 000440 7703                JA             L15                
+129 000442 E9FFFE              JMP            L3                 
+
+130 000445 FF76EE         L15: 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
+
+		LMOD@  PROC  FAR
+000 001EEB B90200              MOV            cx, 2              
+001 001EEE EB03                JMP            L16                
+
+002 001EF3 55             L16: 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            L17                
+013 001F0A 0BD2                OR             dx, dx             
+014 001F0C 7469                JE             L18                
+015 001F0E 0BDB                OR             bx, bx             
+016 001F10 7465                JE             L18                
+
+017 001F12 F7C70100       L17: TEST           di, 1              
+018 001F16 751C                JNE            L19                
+019 001F18 0BD2                OR             dx, dx             
+020 001F1A 790A                JNS            L20                
+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           L20: OR             cx, cx             
+026 001F28 790A                JNS            L19                
+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           L19: 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           L21: 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             L22                
+042 001F4A 7704                JA             L23                
+043 001F4C 3BF3                CMP            si, bx             
+044 001F4E 7205                JB             L22                
+
+045 001F50 2BF3           L23: SUB            si, bx             
+046 001F52 1BFD                SBB            di, bp             
+047 001F54 40                  INC            ax                 
+
+048 001F55 E2E7           L22: LOOP           L21                
+049 001F57 5B                  POP            bx                 
+050 001F58 F7C30200            TEST           bx, 2              
+051 001F5C 7406                JE             L24                
+052 001F5E 8BC6                MOV            ax, si             
+053 001F60 8BD7                MOV            dx, di             
+054 001F62 D1EB                SHR            bx, 1              
+
+055 001F64 F7C30400       L24: TEST           bx, 4              
+056 001F68 7407                JE             L25                
+057 001F6A F7DA                NEG            dx                 
+058 001F6C F7D8                NEG            ax                 
+059 001F6E 83DA00              SBB            dx, 0              
+
+060 001F71 5F             L25: POP            di                 
+061 001F72 5E                  POP            si                 
+062 001F73 5D                  POP            bp                 
+063 001F74 CA0800              RETF           8                  
+065 001F77 F7F3                DIV            bx                 
+067 001F79 F7C70200            TEST           di, 2              
+068 001F7D 7402                JE             L26                
+069 001F7F 8BC2                MOV            ax, dx             
+
+070 001F81 33D2           L26: XOR            dx, dx             
+071 001F83 EBEC                JMP            L25                
+
+		LMOD@  ENDP
+

+ 234 - 0
tests/prev_base/BENCHLNG.EXE.a2

@@ -0,0 +1,234 @@
+		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
+

+ 158 - 0
tests/prev_base/BENCHLNG.b

@@ -0,0 +1,158 @@
+/*
+ * 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);
+}
+

+ 101 - 0
tests/prev_base/BENCHMUL.EXE.a1

@@ -0,0 +1,101 @@
+		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 
+037 00034A EB66                JMP            L1                 
+
+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              
+056 00034F EB54                JMP            L4                 
+
+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
+

+ 99 - 0
tests/prev_base/BENCHMUL.EXE.a2

@@ -0,0 +1,99 @@
+		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
+

+ 38 - 0
tests/prev_base/BENCHMUL.b

@@ -0,0 +1,38 @@
+/*
+ * 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);
+}
+

+ 91 - 0
tests/prev_base/BENCHMUS.EXE.a1

@@ -0,0 +1,91 @@
+		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 
+026 000337 EB4C                JMP            L1                 
+
+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              
+046 00033C EB3A                JMP            L4                 
+
+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
+

+ 89 - 0
tests/prev_base/BENCHMUS.EXE.a2

@@ -0,0 +1,89 @@
+		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
+

+ 38 - 0
tests/prev_base/BENCHMUS.b

@@ -0,0 +1,38 @@
+/*
+ * 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);
+}
+

+ 113 - 0
tests/prev_base/BENCHSHO.EXE.a1

@@ -0,0 +1,113 @@
+		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 
+032 000341 E97900              JMP            L1                 
+
+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                 
+037 0003C8 E979FF              JMP            L3                 
+
+038 000344 C746F60100     L3:  MOV            word ptr [bp-0Ah], 1
+039 000349 EB64                JMP            L4                 
+
+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                               
+056 000366 F7FB                IDIV           bx                 
+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              
+063 000376 EB02                JMP            L7                 
+
+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              
+080 0003A5 EB02                JMP            L9                 
+
+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                
+091 0003D2 E96FFF              JMP            L3                 
+
+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
+

+ 109 - 0
tests/prev_base/BENCHSHO.EXE.a2

@@ -0,0 +1,109 @@
+		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
+

+ 59 - 0
tests/prev_base/BENCHSHO.b

@@ -0,0 +1,59 @@
+/*
+ * 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);
+}
+

+ 58 - 0
tests/prev_base/BYTEOPS.EXE.a1

@@ -0,0 +1,58 @@
+		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                               
+024 000336 F7FB                IDIV           bx                 
+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                               
+034 000348 F7FB                IDIV           bx                 
+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
+

+ 62 - 0
tests/prev_base/BYTEOPS.EXE.a2

@@ -0,0 +1,62 @@
+		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
+

+ 28 - 0
tests/prev_base/BYTEOPS.b

@@ -0,0 +1,28 @@
+/*
+ * 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);
+}
+

+ 90 - 0
tests/prev_base/FIBOS.EXE.a1

@@ -0,0 +1,90 @@
+		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              
+017 00031A EB2D                JMP            L1                 
+
+018 000349 3B76FC         L1:  CMP            si, [bp-4]         
+019 00034C 7ECE                JLE            L2                 
+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         L2:  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            L1                 ;Synthetic inst
+
+		main  ENDP
+
+		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            L3                 
+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             
+020 00037F EB07                JMP            L4                 
+
+021 000388 5E             L4:  POP            si                 
+022 000389 5D                  POP            bp                 
+023 00038A C3                  RET                               
+
+024 000383 B80100         L3:  MOV            ax, 1              
+025 000386 EB00                JMP            L4                 
+
+		proc_1  ENDP
+

+ 88 - 0
tests/prev_base/FIBOS.EXE.a2

@@ -0,0 +1,88 @@
+		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
+

+ 53 - 0
tests/prev_base/FIBOS.b

@@ -0,0 +1,53 @@
+/*
+ * 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);
+}
+

+ 284 - 0
tests/prev_base/INTERCEP.EXE.a1

@@ -0,0 +1,284 @@
+		start  PROC  NEAR
+000 000110 B83500              MOV            ax, 35h            ;Segment constant
+001 000113 8ED8                MOV            ds, ax             
+002 000115 8EC0                MOV            es, ax             
+003 000117 E89F01              CALL           near ptr proc_1    
+004 00011A B403                MOV            ah, 3              
+005 00011C B700                MOV            bh, 0              
+006 00011E CD10                INT            10h                	/* Unknown int */
+
+007 000120 882E0600            MOV            [6], ch            
+008 000124 880E0700            MOV            [7], cl            
+009 000128 B401                MOV            ah, 1              
+010 00012A 80CD04              OR             ch, 4              
+011 00012D 80E50D              AND            ch, 0Dh            
+012 000130 CD10                INT            10h                	/* Unknown int */
+
+013 000132 B60A                MOV            dh, 0Ah            
+014 000134 B21E                MOV            dl, 1Eh            
+015 000136 E89901              CALL           near ptr proc_2    
+016 000139 B2C9                MOV            dl, 0C9h           
+017 00013B E89F01              CALL           near ptr proc_3    
+018 00013E B91100              MOV            cx, 11h            
+019 000141 B2CD                MOV            dl, 0CDh           
+
+020 000143 E89701         L1:  CALL           near ptr proc_3    
+021 000146 E2FB                LOOP           L1                 
+022 000148 B2BB                MOV            dl, 0BBh           
+023 00014A E89001              CALL           near ptr proc_3    
+024 00014D B60E                MOV            dh, 0Eh            
+025 00014F B21E                MOV            dl, 1Eh            
+026 000151 E87E01              CALL           near ptr proc_2    
+027 000154 B2C8                MOV            dl, 0C8h           
+028 000156 E88401              CALL           near ptr proc_3    
+029 000159 B91100              MOV            cx, 11h            
+030 00015C B2CD                MOV            dl, 0CDh           
+
+031 00015E E87C01         L2:  CALL           near ptr proc_3    
+032 000161 E2FB                LOOP           L2                 
+033 000163 B2BC                MOV            dl, 0BCh           
+034 000165 E87501              CALL           near ptr proc_3    
+035 000168 B60B                MOV            dh, 0Bh            
+036 00016A B21E                MOV            dl, 1Eh            
+037 00016C E86301              CALL           near ptr proc_2    
+038 00016F B90300              MOV            cx, 3              
+
+039 000172 52             L3:  PUSH           dx                 
+040 000173 B2BA                MOV            dl, 0BAh           
+041 000175 E86501              CALL           near ptr proc_3    
+042 000178 5A                  POP            dx                 
+043 000179 FEC6                INC            dh                 
+044 00017B E85401              CALL           near ptr proc_2    
+045 00017E E2F2                LOOP           L3                 
+046 000180 B60B                MOV            dh, 0Bh            
+047 000182 B230                MOV            dl, 30h            
+048 000184 E84B01              CALL           near ptr proc_2    
+049 000187 B90300              MOV            cx, 3              
+
+050 00018A 52             L4:  PUSH           dx                 
+051 00018B B2BA                MOV            dl, 0BAh           
+052 00018D E84D01              CALL           near ptr proc_3    
+053 000190 5A                  POP            dx                 
+054 000191 FEC6                INC            dh                 
+055 000193 E83C01              CALL           near ptr proc_2    
+056 000196 E2F2                LOOP           L4                 
+057 000198 B60C                MOV            dh, 0Ch            
+058 00019A B220                MOV            dl, 20h            
+059 00019C E83301              CALL           near ptr proc_2    
+060 00019F BA0800              MOV            dx, 8              
+061 0001A2 E8F300              CALL           near ptr proc_6    
+062 0001A5 B616                MOV            dh, 16h            
+063 0001A7 B220                MOV            dl, 20h            
+064 0001A9 E82601              CALL           near ptr proc_2    
+065 0001AC BA1800              MOV            dx, 18h            
+066 0001AF E8E600              CALL           near ptr proc_6    
+067 0001B2 B618                MOV            dh, 18h            
+068 0001B4 B21E                MOV            dl, 1Eh            
+069 0001B6 E81901              CALL           near ptr proc_2    
+070 0001B9 BA2800              MOV            dx, 28h            
+071 0001BC E8D900              CALL           near ptr proc_6    
+072 0001BF B91400              MOV            cx, 14h            
+
+073 0001C2 E8C400         L5:  CALL           near ptr proc_7    
+074 0001C5 E2FB                LOOP           L5                 
+075 0001C7 E8EF00              CALL           near ptr proc_1    
+076 0001CA B600                MOV            dh, 0              
+077 0001CC B200                MOV            dl, 0              
+078 0001CE E80101              CALL           near ptr proc_2    
+079 0001D1 BA3B00              MOV            dx, 3Bh            
+080 0001D4 E8C100              CALL           near ptr proc_6    
+081 0001D7 B601                MOV            dh, 1              
+082 0001D9 B200                MOV            dl, 0              
+083 0001DB E8F400              CALL           near ptr proc_2    
+084 0001DE BA8700              MOV            dx, 87h            
+085 0001E1 E8B400              CALL           near ptr proc_6    
+086 0001E4 B602                MOV            dh, 2              
+087 0001E6 B200                MOV            dl, 0              
+088 0001E8 E8E700              CALL           near ptr proc_2    
+089 0001EB BAD000              MOV            dx, 0D0h           
+090 0001EE E8A700              CALL           near ptr proc_6    
+091 0001F1 B603                MOV            dh, 3              
+092 0001F3 B200                MOV            dl, 0              
+093 0001F5 E8DA00              CALL           near ptr proc_2    
+094 0001F8 BA1F01              MOV            dx, 11Fh           
+095 0001FB E89A00              CALL           near ptr proc_6    
+096 0001FE B604                MOV            dh, 4              
+097 000200 B200                MOV            dl, 0              
+098 000202 E8CD00              CALL           near ptr proc_2    
+099 000205 BA6A01              MOV            dx, 16Ah           
+100 000208 E88D00              CALL           near ptr proc_6    
+101 00020B B607                MOV            dh, 7              
+102 00020D B200                MOV            dl, 0              
+103 00020F E8C000              CALL           near ptr proc_2    
+104 000212 BA8C01              MOV            dx, 18Ch           
+105 000215 E88000              CALL           near ptr proc_6    
+106 000218 B608                MOV            dh, 8              
+107 00021A B200                MOV            dl, 0              
+108 00021C E8B300              CALL           near ptr proc_2    
+109 00021F BAD501              MOV            dx, 1D5h           
+110 000222 E87300              CALL           near ptr proc_6    
+111 000225 B60B                MOV            dh, 0Bh            
+112 000227 B200                MOV            dl, 0              
+113 000229 E8A600              CALL           near ptr proc_2    
+114 00022C BAFD01              MOV            dx, 1FDh           
+115 00022F E86600              CALL           near ptr proc_6    
+116 000232 B60D                MOV            dh, 0Dh            
+117 000234 B200                MOV            dl, 0              
+118 000236 E89900              CALL           near ptr proc_2    
+119 000239 BA3602              MOV            dx, 236h           
+120 00023C E85900              CALL           near ptr proc_6    
+121 00023F B60F                MOV            dh, 0Fh            
+122 000241 B200                MOV            dl, 0              
+123 000243 E88C00              CALL           near ptr proc_2    
+124 000246 BA7C02              MOV            dx, 27Ch           
+125 000249 E84C00              CALL           near ptr proc_6    
+126 00024C B610                MOV            dh, 10h            
+127 00024E B200                MOV            dl, 0              
+128 000250 E87F00              CALL           near ptr proc_2    
+129 000253 BAC602              MOV            dx, 2C6h           
+130 000256 E83F00              CALL           near ptr proc_6    
+131 000259 B618                MOV            dh, 18h            
+132 00025B B200                MOV            dl, 0              
+133 00025D E87200              CALL           near ptr proc_2    
+134 000260 BAD802              MOV            dx, 2D8h           
+135 000263 E83200              CALL           near ptr proc_6    
+
+136 000266 B400           L6:  MOV            ah, 0              
+137 000268 CD16                INT            16h                	/* Unknown int */
+
+138 00026A 80FC1C              CMP            ah, 1Ch            
+139 00026D 75F7                JNE            L6                 
+140 00026F B401                MOV            ah, 1              
+141 000271 8A2E0600            MOV            ch, [6]            
+142 000275 8A0E0700            MOV            cl, [7]            
+143 000279 CD10                INT            10h                	/* Unknown int */
+
+144 00027B B8004C              MOV            ax, 4C00h          
+145 00027E CD21                INT            21h                ;Exit to DOS	/* Terminate process with return code */
+
+
+		start  ENDP
+
+		proc_1  PROC  NEAR
+000 0002B9 50                  PUSH           ax                 
+001 0002BA 53                  PUSH           bx                 
+002 0002BB 51                  PUSH           cx                 
+003 0002BC 52                  PUSH           dx                 
+004 0002BD 32C0                XOR            al, al             
+005 0002BF B500                MOV            ch, 0              
+006 0002C1 B100                MOV            cl, 0              
+007 0002C3 B618                MOV            dh, 18h            
+008 0002C5 B24F                MOV            dl, 4Fh            
+009 0002C7 B707                MOV            bh, 7              
+010 0002C9 B406                MOV            ah, 6              
+011 0002CB CD10                INT            10h                	/* Unknown int */
+
+012 0002CD 5A                  POP            dx                 
+013 0002CE 59                  POP            cx                 
+014 0002CF 5B                  POP            bx                 
+015 0002D0 58                  POP            ax                 
+016 0002D1 C3                  RET                               
+
+		proc_1  ENDP
+
+		proc_2  PROC  NEAR
+000 0002D2 50                  PUSH           ax                 
+001 0002D3 53                  PUSH           bx                 
+002 0002D4 B700                MOV            bh, 0              
+003 0002D6 B402                MOV            ah, 2              
+004 0002D8 CD10                INT            10h                	/* Unknown int */
+
+005 0002DA 5B                  POP            bx                 
+006 0002DB 58                  POP            ax                 
+007 0002DC C3                  RET                               
+
+		proc_2  ENDP
+
+		proc_3  PROC  NEAR
+000 0002DD 50                  PUSH           ax                 
+001 0002DE 53                  PUSH           bx                 
+002 0002DF 51                  PUSH           cx                 
+003 0002E0 52                  PUSH           dx                 
+004 0002E1 B409                MOV            ah, 9              
+005 0002E3 B700                MOV            bh, 0              
+006 0002E5 B90100              MOV            cx, 1              
+007 0002E8 8AC2                MOV            al, dl             
+008 0002EA B307                MOV            bl, 7              
+009 0002EC CD10                INT            10h                	/* Unknown int */
+
+010 0002EE E81E00              CALL           near ptr proc_4    
+011 0002F1 5A                  POP            dx                 
+012 0002F2 59                  POP            cx                 
+013 0002F3 5B                  POP            bx                 
+014 0002F4 58                  POP            ax                 
+015 0002F5 C3                  RET                               
+
+		proc_3  ENDP
+
+		proc_4  PROC  NEAR
+000 00030F 50                  PUSH           ax                 
+001 000310 53                  PUSH           bx                 
+002 000311 51                  PUSH           cx                 
+003 000312 52                  PUSH           dx                 
+004 000313 B403                MOV            ah, 3              
+005 000315 B700                MOV            bh, 0              
+006 000317 CD10                INT            10h                	/* Unknown int */
+
+007 000319 B402                MOV            ah, 2              
+008 00031B FEC2                INC            dl                 
+009 00031D 80FA4F              CMP            dl, 4Fh            
+010 000320 7606                JBE            L7                 
+011 000322 E82000              CALL           near ptr proc_5    
+012 000325 EB03                JMP            L8                 
+
+013 00032A 5A             L8:  POP            dx                 
+014 00032B 59                  POP            cx                 
+015 00032C 5B                  POP            bx                 
+016 00032D 58                  POP            ax                 
+017 00032E C3                  RET                               
+
+018 000328 CD10           L7:  INT            10h                	/* Unknown int */
+
+019                            JMP            L8                 ;Synthetic inst
+
+		proc_4  ENDP
+
+		proc_5  PROC  NEAR
+000 000345 50                  PUSH           ax                 
+001 000346 52                  PUSH           dx                 
+002 000347 B402                MOV            ah, 2              
+003 000349 B20D                MOV            dl, 0Dh            
+004 00034B CD21                INT            21h                	/* Character output */
+
+005 00034D B20A                MOV            dl, 0Ah            
+006 00034F CD21                INT            21h                	/* Character output */
+
+007 000351 5A                  POP            dx                 
+008 000352 58                  POP            ax                 
+009 000353 C3                  RET                               
+
+		proc_5  ENDP
+
+		proc_6  PROC  NEAR
+000 000298 B409                MOV            ah, 9              
+001 00029A CD21                INT            21h                	/* Display string */
+
+002 00029C C3                  RET                               
+
+		proc_6  ENDP
+
+		proc_7  PROC  NEAR
+000 000289 51                  PUSH           cx                 
+001 00028A B100                MOV            cl, 0              
+
+002 00028C B500           L9:  MOV            ch, 0              
+
+003 00028E FECD           L10: DEC            ch                 
+004 000290 75FC                JNE            L10                
+005 000292 FEC9                DEC            cl                 
+006 000294 75F6                JNE            L9                 
+007 000296 59                  POP            cx                 
+008 000297 C3                  RET                               
+
+		proc_7  ENDP
+

+ 283 - 0
tests/prev_base/INTERCEP.EXE.a2

@@ -0,0 +1,283 @@
+		proc_7  PROC  NEAR
+000 000289 51                  PUSH           cx                 
+001 00028A B100                MOV            cl, 0              
+
+002 00028C B500           L1:  MOV            ch, 0              
+
+003 00028E FECD           L2:  DEC            ch                 
+004 000290 75FC                JNE            L2                 
+005 000292 FEC9                DEC            cl                 
+006 000294 75F6                JNE            L1                 
+007 000296 59                  POP            cx                 
+008 000297 C3                  RET                               
+
+		proc_7  ENDP
+
+		proc_6  PROC  NEAR
+000 000298 B409                MOV            ah, 9              
+001 00029A CD21                INT            21h                	/* Display string */
+
+002 00029C C3                  RET                               
+
+		proc_6  ENDP
+
+		proc_5  PROC  NEAR
+000 000345 50                  PUSH           ax                 
+001 000346 52                  PUSH           dx                 
+002 000347 B402                MOV            ah, 2              
+003 000349 B20D                MOV            dl, 0Dh            
+004 00034B CD21                INT            21h                	/* Character output */
+
+005 00034D B20A                MOV            dl, 0Ah            
+006 00034F CD21                INT            21h                	/* Character output */
+
+007 000351 5A                  POP            dx                 
+008 000352 58                  POP            ax                 
+009 000353 C3                  RET                               
+
+		proc_5  ENDP
+
+		proc_4  PROC  NEAR
+000 00030F 50                  PUSH           ax                 
+001 000310 53                  PUSH           bx                 
+002 000311 51                  PUSH           cx                 
+003 000312 52                  PUSH           dx                 
+004 000313 B403                MOV            ah, 3              
+005 000315 B700                MOV            bh, 0              
+006 000317 CD10                INT            10h                	/* Unknown int */
+
+007 000319 B402                MOV            ah, 2              
+008 00031B FEC2                INC            dl                 
+009 00031D 80FA4F              CMP            dl, 4Fh            
+010 000320 7606                JBE            L3                 
+011 000322 E82000              CALL           near ptr proc_5    
+
+013 00032A 5A             L4:  POP            dx                 
+014 00032B 59                  POP            cx                 
+015 00032C 5B                  POP            bx                 
+016 00032D 58                  POP            ax                 
+017 00032E C3                  RET                               
+
+018 000328 CD10           L3:  INT            10h                	/* Unknown int */
+
+019                            JMP            L4                 ;Synthetic inst
+
+		proc_4  ENDP
+
+		proc_3  PROC  NEAR
+000 0002DD 50                  PUSH           ax                 
+001 0002DE 53                  PUSH           bx                 
+002 0002DF 51                  PUSH           cx                 
+003 0002E0 52                  PUSH           dx                 
+004 0002E1 B409                MOV            ah, 9              
+005 0002E3 B700                MOV            bh, 0              
+006 0002E5 B90100              MOV            cx, 1              
+007 0002E8 8AC2                MOV            al, dl             
+008 0002EA B307                MOV            bl, 7              
+009 0002EC CD10                INT            10h                	/* Unknown int */
+
+010 0002EE E81E00              CALL           near ptr proc_4    
+011 0002F1 5A                  POP            dx                 
+012 0002F2 59                  POP            cx                 
+013 0002F3 5B                  POP            bx                 
+014 0002F4 58                  POP            ax                 
+015 0002F5 C3                  RET                               
+
+		proc_3  ENDP
+
+		proc_2  PROC  NEAR
+000 0002D2 50                  PUSH           ax                 
+001 0002D3 53                  PUSH           bx                 
+002 0002D4 B700                MOV            bh, 0              
+003 0002D6 B402                MOV            ah, 2              
+004 0002D8 CD10                INT            10h                	/* Unknown int */
+
+005 0002DA 5B                  POP            bx                 
+006 0002DB 58                  POP            ax                 
+007 0002DC C3                  RET                               
+
+		proc_2  ENDP
+
+		proc_1  PROC  NEAR
+000 0002B9 50                  PUSH           ax                 
+001 0002BA 53                  PUSH           bx                 
+002 0002BB 51                  PUSH           cx                 
+003 0002BC 52                  PUSH           dx                 
+004 0002BD 32C0                XOR            al, al             
+005 0002BF B500                MOV            ch, 0              
+006 0002C1 B100                MOV            cl, 0              
+007 0002C3 B618                MOV            dh, 18h            
+008 0002C5 B24F                MOV            dl, 4Fh            
+009 0002C7 B707                MOV            bh, 7              
+010 0002C9 B406                MOV            ah, 6              
+011 0002CB CD10                INT            10h                	/* Unknown int */
+
+012 0002CD 5A                  POP            dx                 
+013 0002CE 59                  POP            cx                 
+014 0002CF 5B                  POP            bx                 
+015 0002D0 58                  POP            ax                 
+016 0002D1 C3                  RET                               
+
+		proc_1  ENDP
+
+		start  PROC  NEAR
+000 000110 B83500              MOV            ax, 35h            ;Segment constant
+001 000113 8ED8                MOV            ds, ax             
+002 000115 8EC0                MOV            es, ax             
+003 000117 E89F01              CALL           near ptr proc_1    
+004 00011A B403                MOV            ah, 3              
+005 00011C B700                MOV            bh, 0              
+006 00011E CD10                INT            10h                	/* Unknown int */
+
+007 000120 882E0600            MOV            [6], ch            
+008 000124 880E0700            MOV            [7], cl            
+009 000128 B401                MOV            ah, 1              
+010 00012A 80CD04              OR             ch, 4              
+011 00012D 80E50D              AND            ch, 0Dh            
+012 000130 CD10                INT            10h                	/* Unknown int */
+
+013 000132 B60A                MOV            dh, 0Ah            
+014 000134 B21E                MOV            dl, 1Eh            
+015 000136 E89901              CALL           near ptr proc_2    
+016 000139 B2C9                MOV            dl, 0C9h           
+017 00013B E89F01              CALL           near ptr proc_3    
+018 00013E B91100              MOV            cx, 11h            
+019 000141 B2CD                MOV            dl, 0CDh           
+
+020 000143 E89701         L5:  CALL           near ptr proc_3    
+021 000146 E2FB                LOOP           L5                 
+022 000148 B2BB                MOV            dl, 0BBh           
+023 00014A E89001              CALL           near ptr proc_3    
+024 00014D B60E                MOV            dh, 0Eh            
+025 00014F B21E                MOV            dl, 1Eh            
+026 000151 E87E01              CALL           near ptr proc_2    
+027 000154 B2C8                MOV            dl, 0C8h           
+028 000156 E88401              CALL           near ptr proc_3    
+029 000159 B91100              MOV            cx, 11h            
+030 00015C B2CD                MOV            dl, 0CDh           
+
+031 00015E E87C01         L6:  CALL           near ptr proc_3    
+032 000161 E2FB                LOOP           L6                 
+033 000163 B2BC                MOV            dl, 0BCh           
+034 000165 E87501              CALL           near ptr proc_3    
+035 000168 B60B                MOV            dh, 0Bh            
+036 00016A B21E                MOV            dl, 1Eh            
+037 00016C E86301              CALL           near ptr proc_2    
+038 00016F B90300              MOV            cx, 3              
+
+039 000172 52             L7:  PUSH           dx                 
+040 000173 B2BA                MOV            dl, 0BAh           
+041 000175 E86501              CALL           near ptr proc_3    
+042 000178 5A                  POP            dx                 
+043 000179 FEC6                INC            dh                 
+044 00017B E85401              CALL           near ptr proc_2    
+045 00017E E2F2                LOOP           L7                 
+046 000180 B60B                MOV            dh, 0Bh            
+047 000182 B230                MOV            dl, 30h            
+048 000184 E84B01              CALL           near ptr proc_2    
+049 000187 B90300              MOV            cx, 3              
+
+050 00018A 52             L8:  PUSH           dx                 
+051 00018B B2BA                MOV            dl, 0BAh           
+052 00018D E84D01              CALL           near ptr proc_3    
+053 000190 5A                  POP            dx                 
+054 000191 FEC6                INC            dh                 
+055 000193 E83C01              CALL           near ptr proc_2    
+056 000196 E2F2                LOOP           L8                 
+057 000198 B60C                MOV            dh, 0Ch            
+058 00019A B220                MOV            dl, 20h            
+059 00019C E83301              CALL           near ptr proc_2    
+060 00019F BA0800              MOV            dx, 8              
+061 0001A2 E8F300              CALL           near ptr proc_6    
+062 0001A5 B616                MOV            dh, 16h            
+063 0001A7 B220                MOV            dl, 20h            
+064 0001A9 E82601              CALL           near ptr proc_2    
+065 0001AC BA1800              MOV            dx, 18h            
+066 0001AF E8E600              CALL           near ptr proc_6    
+067 0001B2 B618                MOV            dh, 18h            
+068 0001B4 B21E                MOV            dl, 1Eh            
+069 0001B6 E81901              CALL           near ptr proc_2    
+070 0001B9 BA2800              MOV            dx, 28h            
+071 0001BC E8D900              CALL           near ptr proc_6    
+072 0001BF B91400              MOV            cx, 14h            
+
+073 0001C2 E8C400         L9:  CALL           near ptr proc_7    
+074 0001C5 E2FB                LOOP           L9                 
+075 0001C7 E8EF00              CALL           near ptr proc_1    
+076 0001CA B600                MOV            dh, 0              
+077 0001CC B200                MOV            dl, 0              
+078 0001CE E80101              CALL           near ptr proc_2    
+079 0001D1 BA3B00              MOV            dx, 3Bh            
+080 0001D4 E8C100              CALL           near ptr proc_6    
+081 0001D7 B601                MOV            dh, 1              
+082 0001D9 B200                MOV            dl, 0              
+083 0001DB E8F400              CALL           near ptr proc_2    
+084 0001DE BA8700              MOV            dx, 87h            
+085 0001E1 E8B400              CALL           near ptr proc_6    
+086 0001E4 B602                MOV            dh, 2              
+087 0001E6 B200                MOV            dl, 0              
+088 0001E8 E8E700              CALL           near ptr proc_2    
+089 0001EB BAD000              MOV            dx, 0D0h           
+090 0001EE E8A700              CALL           near ptr proc_6    
+091 0001F1 B603                MOV            dh, 3              
+092 0001F3 B200                MOV            dl, 0              
+093 0001F5 E8DA00              CALL           near ptr proc_2    
+094 0001F8 BA1F01              MOV            dx, 11Fh           
+095 0001FB E89A00              CALL           near ptr proc_6    
+096 0001FE B604                MOV            dh, 4              
+097 000200 B200                MOV            dl, 0              
+098 000202 E8CD00              CALL           near ptr proc_2    
+099 000205 BA6A01              MOV            dx, 16Ah           
+100 000208 E88D00              CALL           near ptr proc_6    
+101 00020B B607                MOV            dh, 7              
+102 00020D B200                MOV            dl, 0              
+103 00020F E8C000              CALL           near ptr proc_2    
+104 000212 BA8C01              MOV            dx, 18Ch           
+105 000215 E88000              CALL           near ptr proc_6    
+106 000218 B608                MOV            dh, 8              
+107 00021A B200                MOV            dl, 0              
+108 00021C E8B300              CALL           near ptr proc_2    
+109 00021F BAD501              MOV            dx, 1D5h           
+110 000222 E87300              CALL           near ptr proc_6    
+111 000225 B60B                MOV            dh, 0Bh            
+112 000227 B200                MOV            dl, 0              
+113 000229 E8A600              CALL           near ptr proc_2    
+114 00022C BAFD01              MOV            dx, 1FDh           
+115 00022F E86600              CALL           near ptr proc_6    
+116 000232 B60D                MOV            dh, 0Dh            
+117 000234 B200                MOV            dl, 0              
+118 000236 E89900              CALL           near ptr proc_2    
+119 000239 BA3602              MOV            dx, 236h           
+120 00023C E85900              CALL           near ptr proc_6    
+121 00023F B60F                MOV            dh, 0Fh            
+122 000241 B200                MOV            dl, 0              
+123 000243 E88C00              CALL           near ptr proc_2    
+124 000246 BA7C02              MOV            dx, 27Ch           
+125 000249 E84C00              CALL           near ptr proc_6    
+126 00024C B610                MOV            dh, 10h            
+127 00024E B200                MOV            dl, 0              
+128 000250 E87F00              CALL           near ptr proc_2    
+129 000253 BAC602              MOV            dx, 2C6h           
+130 000256 E83F00              CALL           near ptr proc_6    
+131 000259 B618                MOV            dh, 18h            
+132 00025B B200                MOV            dl, 0              
+133 00025D E87200              CALL           near ptr proc_2    
+134 000260 BAD802              MOV            dx, 2D8h           
+135 000263 E83200              CALL           near ptr proc_6    
+
+136 000266 B400           L10: MOV            ah, 0              
+137 000268 CD16                INT            16h                	/* Unknown int */
+
+138 00026A 80FC1C              CMP            ah, 1Ch            
+139 00026D 75F7                JNE            L10                
+140 00026F B401                MOV            ah, 1              
+141 000271 8A2E0600            MOV            ch, [6]            
+142 000275 8A0E0700            MOV            cl, [7]            
+143 000279 CD10                INT            10h                	/* Unknown int */
+
+144 00027B B8004C              MOV            ax, 4C00h          
+145 00027E CD21                INT            21h                ;Exit to DOS	/* Terminate process with return code */
+
+
+		start  ENDP
+

+ 39 - 0
tests/prev_base/MIN.EXE.a1

@@ -0,0 +1,39 @@
+		start  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
+011 00012D EB1E                JMP            L2                 
+
+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                 
+
+		start  ENDP
+

+ 38 - 0
tests/prev_base/MIN.EXE.a2

@@ -0,0 +1,38 @@
+		start  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                 
+
+		start  ENDP
+

+ 27 - 0
tests/prev_base/MIN.b

@@ -0,0 +1,27 @@
+/*
+ * Input file	: ./tests/inputs/MIN.EXE
+ * File type	: EXE
+ */
+
+#include "dcc.h"
+
+
+void start ()
+/* 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 {
+    }
+}
+