EasyManua.ls Logo

Intel 8253 - Page 544

Intel 8253
773 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
XA User Guide 6-144 4/17/98
PUSH Push Multiple
PUSHU Push User Multiple
Syntax: PUSH Rlist
PUSHU Rlist
Description: Push the specified registers (one or more) onto the stack. The specified registers are
pushed onto the stack. Any combination of word registers in the group R0 to R7 may be pushed in
a single instruction in a word operation. Or, any combination of byte registers in the group R0L to
R3H or the group R4L to R7H may be pushed in a single instruction in a byte operation. The data
size may be byte or word. PUSH uses the current stack pointer, while PUSHU forces an access to
the user stack.
Note: Rlist is a bit map that represents each register to be pushed. The registers are in the order R7,
R6, R5,......, R0, for word registers or R3H.... R0L, or R7H... R4L for byte registers. The push order
is from left to right, i.e., the register specified by the leftmost one in Rlist will be pushed first, etc.
The order must be the reverse of that used by the corresponding POP instruction. Note that if the
same register list is used first with a PUSH, then with a POP, the original register contents will be
restored. The order in which the registers are called out in the source code is not important because
the Rlist operand is encoded as a fixed order bit map (see below).
Size: Byte, Word
Flags Updated: none
PUSH Rlist
Bytes: 2
Clocks: 3 + 3 per additional register
Operation: Repeat for all selected registers (Ri):
(SP) <-- (SP) - 2
((SP)) <-- (Ri)
Encoding:
PUSHU Rlist
Bytes: 2
Clocks: 3 + 3 per additional register
Operation: Repeat for all selected registers (Ri):
(USP) <-- (USP) - 2
((USP)) <-- (Ri)
Encoding:
0 H/L 0 0 SZ 1 1 1
Rlist
0 H/L 0 1 SZ 1 1 1
Rlist

Table of Contents