Programming-Language-Design / input / output.txt
output.txt
Raw
#source "input/input_lab_12.txt"

' *  Global variables
	' * [10,double] v (offset 0)

' Invocation to the main function
call main
halt

#line	4
 main:
	' * Parameters
	' * Local variables
	' * double value (offset -4)
	' * int i (offset -6)
	' * int j (offset -8)
	' * [4,[5,int]] w (offset -48)
	' * struct {[int day, int month, int year] } date (offset -54)
	enter 54

#line	13
	' * Read
	push bp
	pushi -54
	addi
	pushi 0
	addi
	ini
	storei

#line	14
	push bp
	pushi -54
	addi
	pushi 4
	addi
	pushb 97
	b2i
	storei

#line	15
	push bp
	pushi -54
	addi
	pushi 2
	addi
	push bp
	pushi -54
	addi
	pushi 0
	addi
	loadi
	push bp
	pushi -54
	addi
	pushi 4
	addi
	loadi
	muli
	pushi 12
	modi
	pushi 1
	addi
	storei

#line	16
	' * Write
	push bp
	pushi -54
	addi
	pushi 0
	addi
	loadi
	outi

#line	16
	' * Write
	pushb 10
	outb

#line	16
	' * Write
	push bp
	pushi -54
	addi
	pushi 2
	addi
	loadi
	outi

#line	16
	' * Write
	pushb 10
	outb

#line	16
	' * Write
	push bp
	pushi -54
	addi
	pushi 4
	addi
	loadi
	i2f
	outf

#line	16
	' * Write
	pushb 10
	outb

#line	18
	' * Read
	push bp
	pushi -4
	addi
	inf
	storef

#line	20
	push bp
	pushi -6
	addi
	pushi 0
	storei

#line	21
	' * While
label0:
	push bp
	pushi -6
	addi
	loadi
	pushi 10
	lti
	jz label1
	' * Body of the while statement

#line	22
	pusha 0
	push bp
	pushi -6
	addi
	loadi
	pushi 4
	muli
	addi
	push bp
	pushi -4
	addi
	loadf
	storef

#line	23
	' * Write
	push bp
	pushi -6
	addi
	loadi
	outi

#line	23
	' * Write
	pushb 58
	outb

#line	23
	' * Write
	pusha 0
	push bp
	pushi -6
	addi
	loadi
	pushi 4
	muli
	addi
	loadf
	outf

#line	23
	' * Write
	pushb 32
	outb

#line	24
	' * If statement
	push bp
	pushi -6
	addi
	loadi
	pushi 2
	modi
	jz label2
	' * Body of the if branch

#line	25
	' * Write
	pushb 111
	outb

#line	25
	' * Write
	pushb 100
	outb

#line	25
	' * Write
	pushb 100
	outb

#line	25
	' * Write
	pushb 10
	outb
	jmp label3
label2:
	' * Body of the else branch

#line	27
	' * Write
	pushb 101
	outb

#line	27
	' * Write
	pushb 118
	outb

#line	27
	' * Write
	pushb 101
	outb

#line	27
	' * Write
	pushb 110
	outb

#line	27
	' * Write
	pushb 10
	outb
label3:

#line	28
	push bp
	pushi -6
	addi
	push bp
	pushi -6
	addi
	loadi
	pushi 1
	addi
	storei
	jmp label0
label1:

#line	30
	' * Write
	pushb 10
	outb

#line	32
	push bp
	pushi -6
	addi
	pushi 0
	storei

#line	33
	' * While
label4:
	push bp
	pushi -6
	addi
	loadi
	pushi 4
	lti
	jz label5
	' * Body of the while statement

#line	34
	push bp
	pushi -8
	addi
	pushi 0
	storei

#line	35
	' * While
label6:
	push bp
	pushi -8
	addi
	loadi
	pushi 5
	lti
	jz label7
	' * Body of the while statement

#line	36
	push bp
	pushi -48
	addi
	push bp
	pushi -6
	addi
	loadi
	pushi 10
	muli
	addi
	push bp
	pushi -8
	addi
	loadi
	pushi 2
	muli
	addi
	push bp
	pushi -6
	addi
	loadi
	push bp
	pushi -8
	addi
	loadi
	addi
	storei

#line	37
	' * Write
	push bp
	pushi -48
	addi
	push bp
	pushi -6
	addi
	loadi
	pushi 10
	muli
	addi
	push bp
	pushi -8
	addi
	loadi
	pushi 2
	muli
	addi
	loadi
	outi

#line	37
	' * Write
	pushb 32
	outb

#line	38
	push bp
	pushi -8
	addi
	push bp
	pushi -8
	addi
	loadi
	pushi 1
	addi
	storei
	jmp label6
label7:

#line	40
	' * Write
	pushb 10
	outb

#line	41
	push bp
	pushi -6
	addi
	push bp
	pushi -6
	addi
	loadi
	pushi 1
	addi
	storei
	jmp label4
label5:
	ret 0, 54, 0