S3C8245/P8245/C8249/P8249 INSTRUCTION SET
6-67
PUSH Push To Stack
PUSH src
Operation: SP SP – 1
@SP src
A PUSH instruction decrements the stack pointer value and loads the contents of the source (src)
into the location addressed by the decremented stack pointer. The operation then adds the new
value to the top of the stack.
Flags: No flags are affected.
Format:
Bytes Cycles Opcode
(Hex) Addr Mode
dst
opc src 28 (internal clock) 70 R
8 (external clock)
8 (internal clock)
8 (external clock) 71 IR
Examples: Given: Register 40H = 4FH, register 4FH = 0AAH, SPH = 00H, and SPL = 00H:
PUSH 40H Register 40H = 4FH, stack register 0FFH = 4FH,
SPH = 0FFH, SPL = 0FFH
PUSH @40H Register 40H = 4FH, register 4FH = 0AAH, stack register
0FFH = 0AAH, SPH = 0FFH, SPL = 0FFH
In the first example, if the stack pointer contains the value 0000H, and general register 40H the
value 4FH, the statement "PUSH 40H" decrements the stack pointer from 0000 to 0FFFFH. It then
loads the contents of register 40H into location 0FFFFH and adds this new value to the top of the
stack.