Intel 80L186EC ユーザーズマニュアル

ページ / 88
INTEL 186 EB/EC EVALUATION BOARD USER’S MANUAL
6-4
6.5.8
WRITE_DOUBLE (Code 09H)
This command stores the RISM_DATA register in the double-word of memory pointed to
by the RISM_ADDR register and increments the RISM_ADDR register (by four) to point
at the next memory double-word.
6.5.9
LOAD_ADDRESS (Code 0AH)
This command loads the RISM_ADDR register with the least-significant word in the
RISM_DATA register.
6.5.10 READ_PC (Code 10H)
This command loads the RISM_DATA register with the CS (Code Segment) and IP
(Instruction Pointer) associated with the user’s code. Most RISM implementations have to
check RUN_FLAG to determine how to access the user’s PC.
6.5.11 WRITE_PC (Code 11H)
This command loads the CS (Code Segment) and the IP (Instruction Pointer) associated
with the user’s code from the RISM_DATA register. The host software will invoke this
command only while user code is not running.
6.5.12 START_USER (Code 12H)
This command starts execution of user code, clears the TRAP_FLAG, and sets the
RUN_FLAG. The action of this command relies on its being executed as part of an ISR
(Interrupt Service Routine). At the start of the ISR, the current CS:IP and FLAGS are
pushed into the stack. If the user code is not running, the CS:IP and FLAGS that are pushed
into the stack are associated with an idle loop that the RISM runs while it waits for an inter-
rupt. The START_USER command deletes the CS:IP and FLAGS from the stack and
replaces them with USER_CS, USER_IP and USER_FLAGS. When control returns from
the ISR, the user’s code (rather than the idle loop) executes. The host software will not issue
a GO command if the user code is already running.
6.5.13 STOP_USER (code 13H)
This command stops the execution of user code and clears the RUN_FLAG. The action of
the HALT command mirrors that of the GO command. In the case of the HALT command,
the user’s CS:IP and FLAGS are pushed into the stack upon entry to the ISR. The
STOP_USER command saves this user information in USER_CS, USER_IP, and
USER_FLAGS and replaces it with CS:IP and FLAGS values associated with the idle loop.
When control returns from the ISR, the idle loop (rather than the user’s code) executes. The
host software will not issue a HALT command unless the user code is running.