Start of TRIGOL Optimizing Compiler for a Program P3.tri at Thu Feb 14 19:51:37 2008


Program

# F:=(7*(3+(2*5)))#

Parsing tree

root
:=
F*
7+
3*
25

Table of constants
c1=7c2=3c3=2c4=5

Table of identifiers
i1=F

Modified tree:

root
:=
F*
7+
3*
25


Compiler to Assembler started

; gen_header: source text
; #F:=7*(3+(2*5))#
;
; Program P3.asm
	.MODEL	small
	.STACK	100h
; gen_header: Rd=0 Wr=0
; gen_header: # of identifiers=1
.DATA F DW 0 dTv0 DW 0 ; gen_header: code segment'll start
.CODE ProgramStart: mov ax,@data mov ds,ax
StackF

StackF7

StackF73

StackF732

StackF7325
; compiling the operator (2*5)
*
25
constant expression, I'll optimize..
10 = 2 * 5
; compiling the operator (3+(2*5))
+
3*
25
constant expression, I'll optimize..
13 = 3 + 10
; compiling the operator (7*(3+(2*5)))
*
7+
3*
25
constant expression, I'll optimize..
91 = 7 * 13
; compiling the operator F:=(7*(3+(2*5)))
:=
F*
7+
3*
25
mov ax,91 mov F,ax
Stack
mov ah,4ch int 21h END ProgramStart programm P3.asm is compiled

I'll start compiler from assembler, and linker

tasm P3 >>P3oc.htm
Turbo Assembler Version 3.1 Copyright (c) 1988, 1992 Borland International Assembling file: P3.ASM Error messages: None Warning messages: None Passes: 1 Remaining memory: 420k
tlink P3+teek >>P3oc.htm
Turbo Link Version 2.0 Copyright (c) 1987, 1988 Borland International

Compiler ended at Thu Feb 14 19:51:38 2008