MOTOROLA
M68020 USER’S MANUAL
9- 19
Table 9-6. Access Status Register Codes
Value
Validity
Processor Action
$00
Invalid
Format Error
$01
Valid
No Change in Access Rights
$02–$03
Valid
Change Access Rights with No Change of Stack Pointer
$04–$07
Valid
Change Access Rights and Change Stack Pointer
Other
Undefined
Undefined (Take Format Error Exception)
The processor uses the descriptor address registers during the CALLM instruction to
communicate the address of the type $01 descriptor, allowing external hardware to verify
that the address is a valid address for a type $01 descriptor. This validation prevents a
module from creating a type $01 descriptor to increase its access rights.
9.8.1 Module Call
The CALLM instruction is used to make the module call. For the type $00 module
descriptor, the processor creates and fills the module stack frame at the top of the active
system stack. The condition codes of the calling module are saved in the CCR field of the
frame. If opt is equal to 000 (arguments passed on the stack) in the module descriptor, the
MC68020/EC020 does not save the stack pointer or load a new stack pointer value. The
processor uses the module entry word to save and load the module data area pointer
register and then begins execution of the called module.
For the type $01 module descriptor, the processor must first obtain the current access
level from external hardware. It also verifies that the calling module has the right to read
from the area pointed to by the current value of the stack pointer by reading from that
address. It passes the descriptor address and increase access level to external hardware
for validation and then reads the access status. If external hardware determines that the
change in access rights should not be granted, the access status is zero, and the
processor takes a format error exception. No visible processor registers are changed, nor
should the current access level enforced by external hardware be changed. If external
hardware determines that a change should be granted, the external hardware changes its
access level, and the processor proceeds. If the access status register indicates that a
change in the stack pointer is required, the stack pointer is saved internally, a new value is
loaded from the module descriptor, and arguments are copied from the calling stack to the
new stack. Finally, the module stack frame is created and filled on the top of the current
stack. The condition codes of the calling module are saved in the CCR field of the frame.
Execution of the called module then begins as with a type $00 descriptor.
F
re
e
sc
a
le
S
e
m
ic
o
n
d
u
c
to
r,
I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
c
..
.