Start of TRIGOL Optimizing Compiler for a Program P7.tri at Fri Jun 01 15:37:19 2001


Program

# READ a
READ b
READ c
F:=((a*(b+(2*c)))/2)
WRITE F#

Parsing tree

root
READ
a
READ
b
READ
c
:=
F/
*
a+
b*
2c
2
WRITE
F

Table of constants
c1=2

Table of identifiers
i1=ai2=bi3=ci4=F

Modified tree:

root
READ
a
READ
b
READ
c
:=
F/
*
a+
b*
2c
2
WRITE
F


Compiler to Assembler started

; gen_header: source text
; # READ a ; READ b ; READ c ;
; F := a * ( b + ( 2 * c ) ) / 2 ;
; WRITE F #
;
; Program P7.asm
	.MODEL	small
	.STACK	100h
; gen_header: Rd=1 Wr=1
EXTRN readint:PROC EXTRN bin2dec:PROC ; gen_header: # of identifiers=4
.DATA a DW 0 b DW 0 c DW 0 F DW 0 dTv0 DW 0 ; gen_header: generate I/O-text
Sisse DB 'Input the variable ','$' Trykk DB 'Variable ','$' a_S DB 'a=','$' b_S DB 'b=','$' c_S DB 'c=','$' F_S DB 'F=','$' ; gen_header: code segment'll start
.CODE ProgramStart: mov ax,@data mov ds,ax
Stacka
; compiling the operator READ a
READ
a
READ
b
READ
c
:=
F/
*
a+
b*
2c
2
WRITE
F
mov ah,9h mov bx,1 mov cx,17 mov dx,OFFSET Sisse int 21h mov ah,9h mov bx,1 mov cx,2 mov dx,OFFSET a_S int 21h call readint mov a,ax
Stack

Stackb
; compiling the operator READ b
READ
b
READ
c
:=
F/
*
a+
b*
2c
2
WRITE
F
mov ah,9h mov bx,1 mov cx,17 mov dx,OFFSET Sisse int 21h mov ah,9h mov bx,1 mov cx,2 mov dx,OFFSET b_S int 21h call readint mov b,ax
Stack

Stackc
; compiling the operator READ c
READ
c
:=
F/
*
a+
b*
2c