main()
b = 1
c = 2
a = b + c
assembly
mov r1 #1
mov r2 #2
add r4 r1 r2
A, B, C
main()
B = 11
C = 22
A = B + C
assembly
.symbol
A 1100
B 1101
C 1102
mov r1 #11
st r1 B
mov r1 #22
st r1 C
ld r1 B
ld r3 C
add r2 r1 r3
st r2 A
main()
b = 1
if ( b == 2 )
a = 3
else
a = 4
mov r1 #1
eq r3 r1 #2
jf r3 L102
mov r2 #3
jmp L103
:L102
mov r2 #4
:L103
main()
a = 3
b = 0
while (a > 0)
b = b + 1
a = a - 1
mov r1 #3
mov r2 #0
jmp L102
:L103
add r2 r2 #1
add r1 r1 #-1
:L102
gt r3 r1 #0
jt r3 L103
myadd(x)
return x + 1
main()
a = 1
b = myadd(a)
:myadd
st r1 @1 fp
st r2 @2 fp
add fp fp #3
st rads @0 fp
pop sp r1
add r2 r1 #1
mov retval r2
jmp L101
:L101
ld rads @0 fp
sub fp fp #3
ld r2 @2 fp
ld r1 @1 fp
ret rads
:main
st r1 @1 fp
st r2 @2 fp
add fp fp #3
st rads @0 fp
mov r1 #1
push sp r1
jal rads myadd
mov r2 r28
ld rads @0 fp
sub fp fp #3
ld r2 @2 fp
ld r1 @1 fp
ret rads
ax[10]
main()
ax[0] = 1
ax[1] = 2
b = ax[1]
mov r2 #1
mov r3 #0
st r2 @ax r3
mov r2 #2
mov r3 #1
st r2 @ax r3
mov r3 #1
ld r2 @ax r3
mov r1 r2
RZ compiler version 3.6 the package rz36-3.zip
C:\rz36-3\test>rz36 ex6.txt > ex6-s.txt
C:\rz36-3\test>as21 ex6-s.txt
C:\rz36-3\test>sim21 ex6-s.obj
load program, last address 200
>t
PC 0 mov r30 #3500 r0:0 r1:0
r2:0 r3:0 r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:0 r28:0 r29:0 r30:3500 r31:0
...
>t
PC 9 mov r2
#1 r0:0 r1:0 r2:1 r3:0
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 10 mov r3
#0 r0:0 r1:0 r2:1 r3:0
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 11 st r2 @1100 r3 r0:0 r1:0 r2:1 r3:0
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 12 mov r2
#2 r0:0 r1:0 r2:2 r3:0
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 13 mov r3
#1 r0:0 r1:0 r2:2 r3:1
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 14 st r2 @1100 r3 r0:0 r1:0 r2:2 r3:1
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 15 mov r3
#1 r0:0 r1:0 r2:2 r3:1
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 16 ld r2 @1100 r3 r0:0 r1:0 r2:2 r3:1
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
>t
PC 17 mov r1
r2 r0:0 r1:2 r2:2 r3:1
r4:0 r5:0 r6:0 r7:0 r8:0 r9:0
r27:3 r28:0 r29:3000 r30:3504 r31:0
...
>q
stop, clock 18, execute 18 instructions
C:\rz36-3\test>