Now uses -ms macros
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
.SN 3
|
||||
.BP
|
||||
.S1 "INSTRUCTION ADDRESS SPACE"
|
||||
.bp
|
||||
.P1 "INSTRUCTION ADDRESS SPACE"
|
||||
The instruction space of the EM machine contains
|
||||
the code for procedures.
|
||||
Tables necessary for the execution of this code, for example, procedure
|
||||
@@ -10,14 +9,14 @@ the execution of a program, so that it may be
|
||||
protected.
|
||||
No further restrictions to the instruction address space are
|
||||
necessary for the abstract and assembly language level.
|
||||
.P
|
||||
.PP
|
||||
Each procedure has a single entry point: the first instruction.
|
||||
A special type of pointer identifies a procedure.
|
||||
Pointers into the instruction
|
||||
address space have the same size as pointers into data space and
|
||||
can, for example, contain the address of the first instruction
|
||||
or an index in a procedure descriptor table.
|
||||
.A
|
||||
.QQ
|
||||
There is a single EM program counter, PC, pointing
|
||||
to the next instruction to be executed.
|
||||
The procedure pointed to by PC is
|
||||
@@ -28,35 +27,31 @@ The calling procedure remains 'active' and is resumed whenever the called
|
||||
procedure returns.
|
||||
Note that a procedure has several 'active' invocations when
|
||||
called recursively.
|
||||
.P
|
||||
.PP
|
||||
Each procedure must return properly.
|
||||
It is not allowed to fall through to the
|
||||
code of the next procedure.
|
||||
There are several ways to exit from a procedure:
|
||||
.IS 3
|
||||
.PS
|
||||
.PT
|
||||
.IP -
|
||||
the RET instruction, which returns to the
|
||||
calling procedure.
|
||||
.PT
|
||||
.IP -
|
||||
the RTT instruction, which exits a trap handling routine and resumes
|
||||
the trapping instruction (see next chapter).
|
||||
.PT
|
||||
.IP -
|
||||
the GTO instruction, which is used for non-local goto's.
|
||||
It can remove several frames from the stack and transfer
|
||||
control to an active procedure.
|
||||
(see also MES~11 in paragraph 11.1.4.4)
|
||||
.PE
|
||||
.IE
|
||||
.P
|
||||
.PP
|
||||
All branch instructions can transfer control
|
||||
to any label within the same procedure.
|
||||
Branch instructions can never jump out of a procedure.
|
||||
.P
|
||||
.PP
|
||||
Several language implementations use a so called procedure
|
||||
instance identifier, a combination of a procedure identifier and
|
||||
the LB of a stack frame, also called static link.
|
||||
.P
|
||||
.PP
|
||||
The program text for each procedure, as well as any tables,
|
||||
are fragments and can be allocated anywhere
|
||||
in the instruction address space.
|
||||
|
||||
Reference in New Issue
Block a user