COPE-04 Data Structures.indd
23
9
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
9
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
a
d
d
re
ss
in
g
vi
a
el
em
en
t
p
o
in
te
r
e
0
_
b
0
0
3
4
7
e
0
_
b
1
e
0
_
b
2
e
0
_
b
3
e
1
_
b
0
e
1
_
b
1
e
1
_
b
2
e
1
_
b
3
e
2
_
b
0
e
2
_
b
1
e
2
_
b
2
e
2
_
b
3
e
3
_
b
0
e
3
_
b
1
e
3
_
b
2
e
3
_
b
3
R
d
–
D
es
ti
n
at
io
n
}
R
p
–
A
rr
ay
p
o
in
te
r
El
em
en
t
o
ff
se
t
W
ri
te
-b
ac
k
+
l
d
r
<
c
>
<
q
>
<
R
d
>
,
[
<
R
p
>
]
,
#
+
/
–
<
o
f
f
s
e
t
>
23
6
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
6
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
a
d
d
re
ss
in
g
e
0
_
b
0
0
3
4
7
e
0
_
b
1
e
0
_
b
2
e
0
_
b
3
e
1
_
b
0
e
1
_
b
1
e
1
_
b
2
e
1
_
b
3
e
2
_
b
0
e
2
_
b
1
e
2
_
b
2
e
2
_
b
3
e
3
_
b
0
e
3
_
b
1
e
3
_
b
2
e
3
_
b
3
}
x
+
1
·e
s
x
+
0
·e
s
x
+
2
·e
s
x
+
3
·e
s
El
em
en
t
si
ze
(
es
)
4
b
yt
es
Lo
w
er
a
rr
ay
b
o
u
n
d
U
p
p
er
a
rr
ay
b
o
u
n
d
x
+
4
·e
s
–
1
x
+
i
·e
s
M
ay
b
e
b
e
g
o
o
d
t
o
h
av
e
e
s
2
n
=
?
W
h
at
h
ap
p
e
n
s
if
a
rr
ay
b
o
u
n
d
s
ar
e
v
io
la
te
d
?
l
A
n
d
w
h
o
i
s
ch
e
ck
in
g
t
h
at
?
C
an
a
rr
ay
s
al
w
ay
s
b
e
st
o
re
d
“
p
ac
k
e
d
”?
23
3
4
D
at
a
St
ru
ct
u
re
s
U
w
e
R
.
Z
im
m
er
–
T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
C
o
m
p
u
te
r
O
rg
an
is
at
io
n
&
P
ro
g
ra
m
E
xe
cu
ti
o
n
2
02
1
24
0
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
0
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
a
d
d
re
ss
in
g
vi
a
el
em
en
t
p
o
in
te
r
e
0
_
b
0
0
3
4
7
e
0
_
b
1
e
0
_
b
2
e
0
_
b
3
e
1
_
b
0
e
1
_
b
1
e
1
_
b
2
e
1
_
b
3
e
2
_
b
0
e
2
_
b
1
e
2
_
b
2
e
2
_
b
3
e
3
_
b
0
e
3
_
b
1
e
3
_
b
2
e
3
_
b
3
R
d
–
D
es
ti
n
at
io
n
}
R
p
–
A
rr
ay
p
o
in
te
r
El
em
en
t
o
ff
se
t
W
ri
te
-b
ac
k
+
l
d
r
<
c
>
<
q
>
<
R
d
>
,
[
<
R
p
>
]
,
#
+
/
–
<
o
f
f
s
e
t
>
2222 33
e
3
b
2
e
3
b
2
ee
3
_
b
2
e
3
_
b
3
3
_
b
e
3
b
3
e
3
b
3
Ef
fi
ci
e
n
t
if
a
rr
ay
h
as
t
o
b
e
w
o
rk
e
d
s
e
q
u
e
n
ti
al
ly
23
7
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
7
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
a
d
d
re
ss
in
g
vi
a
in
d
ex
r
eg
is
te
r
e
0
_
b
0
0
3
4
7
e
0
_
b
1
e
0
_
b
2
e
0
_
b
3
e
1
_
b
0
e
1
_
b
1
e
1
_
b
2
e
1
_
b
3
e
2
_
b
0
e
2
_
b
1
e
2
_
b
2
e
2
_
b
3
e
3
_
b
0
e
3
_
b
1
e
3
_
b
2
e
3
_
b
3
R
b
–
B
as
e
ad
d
re
ss
R
i
–
In
d
ex
{
sh
if
te
d
}
+
R
d
–
D
es
ti
n
at
io
n
}
l
d
r
<
c
>
<
q
>
<
R
d
>
,
[
<
R
b
>
,
< R i >
{
,
l
s
l
#
<
s
h
i
f
t
>
}
]
23
4
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
4
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
R
ef
er
en
ce
s
fo
r
th
is
c
h
ap
te
r
[P
at
te
rs
o
n
17
]
D
av
id
A
. P
at
te
rs
o
n
&
J
o
h
n
L
. H
e
n
n
e
ss
y
C
o
m
p
u
te
r
O
rg
an
iz
at
io
n
a
n
d
D
e
si
g
n
–
T
h
e
H
ar
d
w
ar
e
/S
o
ft
w
ar
e
I
n
te
rf
ac
e
C
h
ap
te
r
2
“I
n
st
ru
ct
io
n
s:
L
an
g
u
ag
e
o
f
th
e
C
o
m
p
u
te
r”
,
C
h
ap
te
r
5
“L
ar
g
e
a
n
d
F
as
t:
E
xp
lo
it
in
g
M
e
m
o
ry
H
ie
ra
rc
h
y”
A
R
M
e
d
it
io
n
, M
o
rg
an
K
au
fm
an
n
2
01
7
24
1
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
1
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
C
al
cu
la
te
x
i
/
i
n
t
s
u
m
(
u
n
s
i
g
n
e
d
i
n
t
u
i
n
t
s
[
]
,
u
n
s
i
g
n
e
d
i
n
t
f
r
o
m
,
u
n
s
i
g
n
e
d
i
n
t
t
o
)
{
i
n
t
i
;
i
n
t
a
c
c
=
0
;
f
o
r
(
i
=
f
r
o
m
;
i
<
=
t
o
;
i
+
+
)
{
a
c
c
+
=
u
i
n
t
s
[
i
]
;
}
r
e
t
u
r
n
a
c
c
;
} t
y
p
e
N
a
t
u
r
a
l
s
i
s
a
r
r
a
y
(
I
n
t
e
g
e
r
r
a
n
g
e
<
>
)
o
f
N
a
t
u
r
a
l
;
f
u
n
c
t
i
o
n
S
u
m
(
N
u
m
b
e
r
s
:
N
a
t
u
r
a
l
s
)
r
e
t
u
r
n
N
a
t
u
r
a
l
i
s
A
c
c
:
N
a
t
u
r
a
l
:
=
0
;
b
e
g
i
n
f
o
r
n
o
f
N
u
m
b
e
r
s
l
o
o
p
A
c
c
:
=
A
c
c
+
n
;
e
n
d
l
o
o
p
;
r
e
t
u
r
n
A
c
c
;
e
n
d
S
u
m
;
g
)
{
)
{
u
n
s
i
g
n
e
d
i
n
t
u
i
n
t
s
[
1
0
0
]
;
u
n
s
i
g
n
e
d
i
n
t
s
;
i
n
t
i
;
f
o
r
(
i
=
0
;
i
< = 9 9 ; i + + ) { u i n t s [ i ] = r a n d ( ) ; } s = s u m ( u i n t s , 0 , 9 9 ) ; N u m b e r s : c o n s t a n t N a t u r a l s ( 1 . . 1 0 0 ) : = ( o t h e r s = >
R
a
n
d
o
m
(
N
u
m
b
e
r
s
_
G
e
n
e
r
a
t
o
r
)
)
;
S
u
m
_
o
f
_
N
u
m
b
e
r
s
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
:
=
S
u
m
(
N
u
m
b
e
r
s
)
;
23
8
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
8
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
a
d
d
re
ss
in
g
vi
a
in
d
ex
r
eg
is
te
r
e
0
_
b
0
0
3
4
7
e
0
_
b
1
e
0
_
b
2
e
0
_
b
3
e
1
_
b
0
e
1
_
b
1
e
1
_
b
2
e
1
_
b
3
e
2
_
b
0
e
2
_
b
1
e
2
_
b
2
e
2
_
b
3
e
3
_
b
0
e
3
_
b
1
e
3
_
b
2
e
3
_
b
3
R
b
–
B
as
e
ad
d
re
ss
R
i
–
In
d
ex
{
sh
if
te
d
}
+
R
d
–
D
es
ti
n
at
io
n
}
l
d
r
<
c
>
<
q
>
<
R
d
>
,
[
<
R
b
>
,
< R i >
{
,
l
s
l
#
<
s
h
i
f
t
>
}
]
S
h
if
t
w
o
rk
s
if
e
s
2
n
=
2
b
22
b
22
_
b
2
b
3
b
3
_
b
3
b
0
_ _
ee
2
ee
2
ee
2
_
e
2
e
2
e
2
_
e
3
e
2
_ _
e
3
e
3
e
3
C
an
b
e
h
an
d
y
if
R
i
i
s
ac
tu
al
ly
a
n
i
n
d
e
x.
e
3
_
b
2
e
3
_
b
2
e
3
b
3
3
b
e
3
b
3
e
3
b
3
b
0
b
0
e
3
_
b
0
e
3
b
1
e
3
b
1
e
3
b
1
33
e
333
e
3
000 11
e
3
_
b
1
e
3
b
2
e
3
b
2
e
3
b
2
O
th
e
rw
is
e
R
i
w
il
l
b
e
a
b
yt
e
o
ff
se
t.
23
5
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
3
5
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
l
ay
o
u
t
e
0
_
b
0
0
3
4
7
e
0
_
b
1
e
0
_
b
2
e
0
_
b
3
e
1
_
b
0
e
1
_
b
1
e
1
_
b
2
e
1
_
b
3
e
2
_
b
0
e
2
_
b
1
e
2
_
b
2
e
2
_
b
3
e
3
_
b
0
e
3
_
b
1
e
3
_
b
2
e
3
_
b
3
}
x
+
4
x x
+
8
x
+
1
2
A
rr
ay
e
le
m
en
t
Lo
w
er
a
rr
ay
b
o
u
n
d
U
p
p
er
a
rr
ay
b
o
u
n
d
x
+
1
5
El
e
m
e
n
ts
o
f
e
q
u
al
s
iz
e
se
q
u
e
n
ti
al
ly
i
n
m
e
m
o
ry
24
8
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
8
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
R
ep
la
ci
n
g
o
ff
se
ts
w
it
h
a
d
d
re
ss
es
;
r
0
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
a
;
r
1
f
r
o
m
a
r
r
a
y
i
n
d
e
x
;
r
2
t
o
a
r
r
a
y
i
n
d
e
x
>
=
f
r
o
m
i
n
d
e
x
l
s
l
r
1
,
r
1
,
#
2
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
o
f
f
s
e
t
l
s
l
r
2
,
r
2
,
#
2
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
o
f
f
s
e
t
a
d
d
r
1
,
r
0
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
a
d
d
r
e
s
s
–
>
i
_
a
d
d
r
a
d
d
r
2
,
r
0
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
a
d
d
r
e
s
s
–
>
t
o
_
a
d
d
r
m
o
v
r
0
,
#
0
;
s
u
m
:
=
0
f
o
r
_
s
u
m
:
l
d
r
r
3
,
[
r
1
]
,
#
4
;
a
[
i
]
:
=
[
i
_
a
d
d
r
]
;
i
_
a
d
d
r
+
=
4
a
d
d
r
0
,
r
3
;
s
u
m
:
=
s
u
m
+
a
[
i
]
c
m
p
r
1
,
r
2
;
i
_
a
d
d
r
< = t o _ a d d r b l e f o r _ s u m e n d _ f o r _ s u m : ; r 0 s u m o v e r a l l a [ f r o m . . t o ] 5 5 24 5 D at a S tr u ct u re s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 2 4 5 o f 4 8 7 ( ch ap te r 4 : “D at a St ru ct u re s” u p t o p ag e 2 5 3 ) R ep la ci n g m u lt ip li ca ti o n w it h s h if te d i n d ex r eg is te r ; r 0 b a s e a d d r e s s f o r a r r a y a ; r 1 f r o m a r r a y i n d e x ; r 2 t o a r r a y i n d e x m o v r 3 , # 0 ; s u m : = 0 f o r _ s u m : c m p r 1 , r 2 ; i >
t
o
b
g
t
e
n
d
_
f
o
r
_
s
u
m
l
d
r
r
4
,
[
r
0
,
r
1
,
l
s
l
#
2
]
;
a
[
i
]
:
=
[
b
a
s
e
+
e
l
e
m
e
n
t
_
o
f
f
s
e
t
]
a
d
d
r
3
,
r
4
;
s
u
m
:
=
s
u
m
+
a
[
i
]
a
d
d
r
1
,
#
1
;
i
:
=
i
+
1
b
f
o
r
_
s
u
m
e
n
d
_
f
o
r
_
s
u
m
:
m
o
v
r
0
,
r
3
;
r
0
s
u
m
o
v
e
r
a
l
l
a
[
f
r
o
m
.
.
t
o
]
1 7 1
24
2
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
2
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
C
al
cu
la
te
x
i
/
i
n
t
s
u
m
(
u
n
s
i
g
n
e
d
i
n
t
u
i
n
t
s
[
]
,
u
n
s
i
g
n
e
d
i
n
t
f
r
o
m
,
u
n
s
i
g
n
e
d
i
n
t
t
o
)
{
i
n
t
i
;
i
n
t
a
c
c
=
0
;
f
o
r
(
i
=
f
r
o
m
;
i
<
=
t
o
;
i
+
+
)
{
a
c
c
+
=
u
i
n
t
s
[
i
]
;
}
r
e
t
u
r
n
a
c
c
;
} t
y
p
e
N
a
t
u
r
a
l
s
i
s
a
r
r
a
y
(
I
n
t
e
g
e
r
r
a
n
g
e
<
>
)
o
f
N
a
t
u
r
a
l
;
f
u
n
c
t
i
o
n
S
u
m
(
N
u
m
b
e
r
s
:
N
a
t
u
r
a
l
s
)
r
e
t
u
r
n
N
a
t
u
r
a
l
i
s
A
c
c
:
N
a
t
u
r
a
l
:
=
0
;
b
e
g
i
n
f
o
r
n
o
f
N
u
m
b
e
r
s
l
o
o
p
A
c
c
:
=
A
c
c
+
n
;
e
n
d
l
o
o
p
;
r
e
t
u
r
n
A
c
c
;
e
n
d
S
u
m
;
g
)
{
)
{
)
{
)
{
u
n
s
i
g
n
e
d
i
n
t
u
i
n
t
s
[
1
0
0
]
;
u
n
s
i
g
n
e
d
i
n
t
s
;
i
n
t
i
;
f
o
r
(
i
=
0
;
i
< = 9 9 ; i + + ) { u i n t s [ i ] = r a n d ( ) ; } s = s u m ( u i n t s , 0 , 9 9 ) ; N u m b e r s : c o n s t a n t N a t u r a l s ( 1 . . 1 0 0 ) : = ( o t h e r s = >
R
a
n
d
o
m
(
N
u
m
b
e
r
s
_
G
e
n
e
r
a
t
o
r
)
)
;
S
u
m
_
o
f
_
N
u
m
b
e
r
s
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
:
=
S
u
m
(
N
u
m
b
e
r
s
)
;
} s
;
B
e
st
o
f
lu
ck
w
it
h
t
h
e
a
rr
ay
b
o
u
n
d
s!
24
9
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
9
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
S
li
ce
s
n
u
m
b
e
r
s
=
[
0
,
1
,
2
,
3
,
4
,
5
]
n
u
m
b
e
r
s
S
l
i
c
e
=
n
u
m
b
e
r
s
[
1
:
3
]
#
n
u
m
b
e
r
s
S
l
i
c
e
e
q
u
a
l
s
[
1
,
2
,
3
]
n
u
m
b
e
r
s
:
=
[
]
i
n
t
{
0
,
1
,
2
,
3
,
4
,
5
}
n
u
m
b
e
r
s
S
l
i
c
e
:
=
n
u
m
b
e
r
s
[
1
:
3
]
t
y
p
e
N
a
t
u
r
a
l
s
i
s
a
r
r
a
y
(
I
n
t
e
g
e
r
r
a
n
g
e
<
>
)
o
f
N
a
t
u
r
a
l
;
N
u
m
b
e
r
s
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
s
(
–
5
0
.
.
5
0
)
:
=
(
o
t
h
e
r
s
=
>
R
a
n
d
o
m
(
G
e
n
e
r
a
t
o
r
)
)
;
N
u
m
b
e
r
s
_
S
l
i
c
e
_
1
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
s
:
=
N
u
m
b
e
r
s
(
–
1
0
.
.
1
0
)
;
N
u
m
b
e
r
s
_
S
l
i
c
e
_
2
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
s
(
1
.
.
1
0
)
:
=
N
u
m
b
e
r
s
(
1
1
.
.
2
0
)
;
N
u
m
b
e
r
s
_
S
l
i
c
e
_
3
:
N
a
t
u
r
a
l
s
:
=
N
u
m
b
e
r
s
(
–
2
0
.
.
5
0
)
;
b
e
g
i
n
f
o
r
n
o
f
N
u
m
b
e
r
s
_
S
l
i
c
e
_
3
l
o
o
p
n
:
=
n
+
1
;
e
n
d
l
o
o
p
;
e
n
d
;
24
6
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
6
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
R
ep
la
ci
n
g
in
d
ic
es
w
it
h
o
ff
se
ts
;
r
0
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
a
;
r
1
f
r
o
m
a
r
r
a
y
i
n
d
e
x
;
r
2
t
o
a
r
r
a
y
i
n
d
e
x
l
s
l
r
1
,
r
1
,
#
2
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
o
f
f
s
e
t
l
s
l
r
2
,
r
2
,
#
2
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
o
f
f
s
e
t
m
o
v
r
3
,
#
0
;
s
u
m
:
=
0
f
o
r
_
s
u
m
:
c
m
p
r
1
,
r
2
;
i
>
t
o
b
g
t
e
n
d
_
f
o
r
_
s
u
m
l
d
r
r
4
,
[
r
0
,
r
1
]
;
a
[
i
]
:
=
[
b
a
s
e
+
o
f
f
s
e
t
]
a
d
d
r
3
,
r
4
;
s
u
m
:
=
s
u
m
+
a
[
i
]
a
d
d
r
1
,
#
4
;
o
f
f
s
e
t
:
=
o
f
f
s
e
t
+
4
b
f
o
r
_
s
u
m
e
n
d
_
f
o
r
_
s
u
m
:
m
o
v
r
0
,
r
3
;
r
0
s
u
m
o
v
e
r
a
l
l
a
[
f
r
o
m
.
.
t
o
]
3 7 1
24
3
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
3
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rb
it
ra
ry
a
rr
ay
i
n
d
ex
in
g
;
r
0
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
a
;
r
1
f
r
o
m
a
r
r
a
y
i
n
d
e
x
;
r
2
t
o
a
r
r
a
y
i
n
d
e
x
m
o
v
r
3
,
#
0
;
s
u
m
:
=
0
m
o
v
r
4
,
#
4
;
e
l
e
m
e
n
t
s
i
z
e
i
s
4
b
y
t
e
s
m
o
v
r
5
,
#
–
1
;
f
i
r
s
t
_
e
l
e
m
e
n
t
_
o
f
f
s
e
t
f
o
r
_
s
u
m
:
c
m
p
r
1
,
r
2
;
i
>
t
o
b
g
t
e
n
d
_
f
o
r
_
s
u
m
m
l
a
r
6
,
r
1
,
r
4
,
r
5
;
e
l
e
m
e
n
t
_
o
f
f
s
e
t
:
=
(
i
*
4
)
–
f
i
r
s
t
_
e
l
e
m
e
n
t
_
o
f
f
s
e
t
l
d
r
r
7
,
[
r
0
,
r
6
]
;
a
[
i
]
:
=
[
b
a
s
e
+
e
l
e
m
e
n
t
_
o
f
f
s
e
t
]
a
d
d
r
3
,
r
7
;
s
u
m
:
=
s
u
m
+
a
[
i
]
a
d
d
r
1
,
#
1
;
i
:
=
i
+
1
b
f
o
r
_
s
u
m
e
n
d
_
f
o
r
_
s
u
m
:
m
o
v
r
0
,
r
3
;
r
0
s
u
m
o
v
e
r
a
l
l
a
[
f
r
o
m
.
.
t
o
]
3 9 1
25
0
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
5
0
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
rr
ay
S
li
ce
s
n
u
m
b
e
r
s
=
[
0
,
1
,
2
,
3
,
4
,
5
]
n
u
m
b
e
r
s
S
l
i
c
e
=
n
u
m
b
e
r
s
[
1
:
3
]
#
n
u
m
b
e
r
s
S
l
i
c
e
e
q
u
a
l
s
[
1
,
2
,
3
]
n
u
m
b
e
r
s
:
=
[
]
i
n
t
{
0
,
1
,
2
,
3
,
4
,
5
}
n
u
m
b
e
r
s
S
l
i
c
e
:
=
n
u
m
b
e
r
s
[
1
:
3
]
t
y
p
e
N
a
t
u
r
a
l
s
i
s
a
r
r
a
y
(
I
n
t
e
g
e
r
r
a
n
g
e
<
>
)
o
f
N
a
t
u
r
a
l
;
N
u
m
b
e
r
s
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
s
(
–
5
0
.
.
5
0
)
:
=
(
o
t
h
e
r
s
=
>
R
a
n
d
o
m
(
G
e
n
e
r
a
t
o
r
)
)
;
N
u
m
b
e
r
s
_
S
l
i
c
e
_
1
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
s
:
=
N
u
m
b
e
r
s
(
–
1
0
.
.
1
0
)
;
N
u
m
b
e
r
s
_
S
l
i
c
e
_
2
:
c
o
n
s
t
a
n
t
N
a
t
u
r
a
l
s
(
1
.
.
1
0
)
:
=
N
u
m
b
e
r
s
(
1
1
.
.
2
0
)
;
N
u
m
b
e
r
s
_
S
l
i
c
e
_
3
:
N
a
t
u
r
a
l
s
:
=
N
u
m
b
e
r
s
(
–
2
0
.
.
5
0
)
;
b
e
g
i
n
f
o
r
n
o
f
N
u
m
b
e
r
s
_
S
l
i
c
e
_
3
l
o
o
p
n
:
=
n
+
1
;
e
n
d
l
o
o
p
;
e
n
d
;
A
re
t
h
o
se
c
o
p
y
o
r
re
fe
re
n
ce
a
ff
ai
rs
?
24
7
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
4
7
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
A
ss
u
m
in
g
n
o
n
-e
m
p
ty
a
rr
ay
s
;
r
0
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
a
;
r
1
f
r
o
m
a
r
r
a
y
i
n
d
e
x
;
r
2
t
o
a
r
r
a
y
i
n
d
e
x
>
=
f
r
o
m
i
n
d
e
x
l
s
l
r
1
,
r
1
,
#
2
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
o
f
f
s
e
t
l
s
l
r
2
,
r
2
,
#
2
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
o
f
f
s
e
t
m
o
v
r
3
,
#
0
;
s
u
m
:
=
0
f
o
r
_
s
u
m
:
l
d
r
r
4
,
[
r
0
,
r
1
]
;
a
[
i
]
:
=
[
b
a
s
e
+
o
f
f
s
e
t
]
a
d
d
r
3
,
r
4
;
s
u
m
:
=
s
u
m
+
a
[
i
]
a
d
d
r
1
,
#
4
;
o
f
f
s
e
t
:
=
o
f
f
s
e
t
+
4
c
m
p
r
1
,
r
2
;
i
< = t o b l e f o r _ s u m e n d _ f o r _ s u m : m o v r 0 , r 3 ; r 0 s u m o v e r a l l a [ f r o m . . t o ] 3 6 1 24 4 D at a S tr u ct u re s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 2 4 4 o f 4 8 7 ( ch ap te r 4 : “D at a St ru ct u re s” u p t o p ag e 2 5 3 ) Z er o -b as ed a rr ay i n d ex in g ; r 0 b a s e a d d r e s s f o r a r r a y a ; r 1 f r o m a r r a y i n d e x ; r 2 t o a r r a y i n d e x m o v r 3 , # 0 ; s u m : = 0 m o v r 4 , # 4 ; e l e m e n t s i z e i s 4 b y t e s f o r _ s u m : c m p r 1 , r 2 ; i >
t
o
b
g
t
e
n
d
_
f
o
r
_
s
u
m
m
u
l
r
5
,
r
1
,
r
4
;
e
l
e
m
e
n
t
_
o
f
f
s
e
t
:
=
(
i
*
4
)
l
d
r
r
6
,
[
r
0
,
r
5
]
;
a
[
i
]
:
=
[
b
a
s
e
+
e
l
e
m
e
n
t
_
o
f
f
s
e
t
]
a
d
d
r
3
,
r
6
;
s
u
m
:
=
s
u
m
+
a
[
i
]
a
d
d
r
1
,
#
1
;
i
:
=
i
+
1
b
f
o
r
_
s
u
m
e
n
d
_
f
o
r
_
s
u
m
:
m
o
v
r
0
,
r
3
;
r
0
s
u
m
o
v
e
r
a
l
l
a
[
f
r
o
m
.
.
t
o
]
2 8 1
25
1
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
5
1
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
C
o
py
a
rr
ay
s
li
ce
;
r
0
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
a
;
r
1
f
r
o
m
a
r
r
a
y
i
n
d
e
x
;
r
2
t
o
a
r
r
a
y
i
n
d
e
x
>
=
f
r
o
m
i
n
d
e
x
;
r
3
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
b
l
s
l
r
1
,
r
1
,
#
2
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
o
f
f
s
e
t
l
s
l
r
2
,
r
2
,
#
2
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
o
f
f
s
e
t
a
d
d
r
1
,
r
0
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
a
d
d
r
e
s
s
–
>
i
_
a
d
d
r
a
d
d
r
2
,
r
0
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
a
d
d
r
e
s
s
–
>
t
o
_
a
d
d
r
f
o
r
_
c
o
p
y
:
l
d
r
r
4
,
[
r
1
]
,
#
4
;
a
[
i
]
:
=
[
i
_
a
d
d
r
]
;
i
_
a
d
d
r
+
=
4
s
t
r
r
4
,
[
r
3
]
,
#
4
;
[
j
_
a
d
d
r
]
:
=
a
[
i
]
;
j
_
a
d
d
r
+
=
4
c
m
p
r
1
,
r
2
;
i
_
a
d
d
r
<
=
t
o
_
a
d
d
r
b
l
e
f
o
r
_
c
o
p
y
e
n
d
_
f
o
r
_
c
o
p
y
:
;
b
[
]
:
=
a
[
f
r
o
m
.
.
t
o
]
4 6
25
2
D
at
a
S
tr
u
ct
u
re
s
©
2
0
2
1
U
w
e
R
.
Z
im
m
er
, T
h
e
A
u
st
ra
li
an
N
at
io
n
al
U
n
iv
er
si
ty
p
ag
e
2
5
2
o
f
4
8
7
(
ch
ap
te
r
4
:
“D
at
a
St
ru
ct
u
re
s”
u
p
t
o
p
ag
e
2
5
3
)
C
o
py
a
rr
ay
s
li
ce
;
r
0
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
a
;
r
1
f
r
o
m
a
r
r
a
y
i
n
d
e
x
;
r
2
t
o
a
r
r
a
y
i
n
d
e
x
>
=
f
r
o
m
i
n
d
e
x
;
r
3
b
a
s
e
a
d
d
r
e
s
s
f
o
r
a
r
r
a
y
b
l
s
l
r
1
,
r
1
,
#
2
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
o
f
f
s
e
t
l
s
l
r
2
,
r
2
,
#
2
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
o
f
f
s
e
t
a
d
d
r
1
,
r
0
;
t
r
a
n
s
l
a
t
e
f
r
o
m
i
n
d
e
x
t
o
a
d
d
r
e
s
s
–
>
i
_
a
d
d
r
a
d
d
r
2
,
r
0
;
t
r
a
n
s
l
a
t
e
t
o
i
n
d
e
x
t
o
a
d
d
r
e
s
s
–
>
t
o
_
a
d
d
r
f
o
r
_
c
o
p
y
:
l
d
r
r
4
,
[
r
1
]
,
#
4
;
a
[
i
]
:
=
[
i
_
a
d
d
r
]
;
i
_
a
d
d
r
+
=
4
s
t
r
r
4
,
[
r
3
]
,
#
4
;
[
j
_
a
d
d
r
]
:
=
a
[
i
]
;
j
_
a
d
d
r
+
=
4
c
m
p
r
1
,
r
2
;
i
_
a
d
d
r
< = t o _ a d d r b l e f o r _ c o p y e n d _ f o r _ c o p y : ; b [ ] : = a [ f r o m . . t o ] 4 6 p ag e 2 5 2 o f 4 8 7 (c h ap te r 4 : “D at a St ru ct u re s” u p t o p 7 p ag e 2 5 2 o f 4 8 7 ( h t 4 “D t St 7 M o vi n g b lo ck s o f m e m o ry c an b e d o n e e ve n /m u ch f as te r w it h s p e ci al h ar d w ar e . D M A c o n tr o ll er s 25 3 D at a S tr u ct u re s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 2 5 3 o f 4 8 7 ( ch ap te r 4 : “D at a St ru ct u re s” u p t o p ag e 2 5 3 ) D at a S tr u ct u re s • A rr ay s • S tr u ct u re • A li g n m e n t • A d d re ss in g • It e ra to rs • C o p y p ro ce d u re s Su m m ar y