File: labels.tex

package info (click to toggle)
mlton 20210117%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,464 kB
  • sloc: ansic: 27,682; sh: 4,455; asm: 3,569; lisp: 2,879; makefile: 2,347; perl: 1,169; python: 191; pascal: 68; javascript: 7
file content (25 lines) | stat: -rw-r--r-- 914 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
\section{Labels}

\newdef{Labels} are used as symbolic names for address.
The structure \mlrischref{instructions/labels.sml}{Label}
defines the label datatype.  The following operations are defined
on labels:
\begin{itemize}
\item \sml{newLabel : string -> label} --  Generate a new label with
    a given name.  If the name is \sml{""}, a new name is generated.
\item \sml{nameOf : label -> string} -- Returns the name of
   a label
\item \sml{id : label -> int} -- Return the unique id of a label
\item \sml{reset : unit -> unit} -- Return the label id counter to 0.  
\end{itemize}

For machine code generation, the following two additional methods are
defined.
\begin{itemize}
\item  \sml{addrOf : label -> int} -- Return the address associated with
a label
\item  \sml{setAddr : label * int -> unit} --  Set the address associated
with a label
\end{itemize}

See also \href{labelexp.html}{Label Expressions}.