The
TMS34010
C
Language
Warning:
Extreme
care
must
be
taken
not
to
disrupt
the
C
environment
with
asm
commands.
No
checking
of
the
inserted
instructions
is
done.
Insertion
of
jumps
and
labels
into
C
code
may
cause
unpredictable
results
in
variables
manipulated
in
or
around
the
inserted
code.
This
command
is
provided
so
you
can
access
features
of
the
hardware,
which
by
definition
C
is
unable
to
access.
Specifically,
this
command
should
not
be
used
to
change
the
value
of
a C
variable;
however,
it
can
be
used
safely
to
read
the
current
value
of
a
variable.
In
addition,
the
asm
construct
should
not
be
used
to
insert
as-
sembler
directives
which
would
change
the
assembly
environ-
ment.
The asm command
is
very useful in the context
of
register variables. A register
variable
is
a variable in a C program
that
is declared by the user to reside in a
machine register. The
TMS3401 0 C compiler allows up to
four
machine reg-
isters
to
be allocated
to
register variables. These four registers, combined
with
the asm command, provide a means
of
manipulating data independently
of
the
C environment.
4.10
Lexical
Scope
Rules
The lexical scope rules stated in K&R apply
to
TMS3401 0 C also, except that
structures and unions each have
distinct
name spaces for their members. In
addition, the name space
of
both
enumeration variables and enumeration
constants
is
the same
as
for
ordinary variables.
4-9