Samsung S3C84E5 Microphone User Manual


 
INSTRUCTION SET S3C84E5/C84E9/P84E9
6-26
CALL Call Procedure
CALL dst
Operation: SP SP–1
@SP PCL
SP SP–1
@SP PCH
PC dst
The contents of the program counter are pushed onto the top of the stack. The program counter
value used is the address of the first instruction following the CALL instruction. The specified
destination address is then loaded into the program counter and points to the first instruction of a
procedure. At the end of the procedure the return instruction (RET) can be used to return to the
original program flow. RET pops the top of the stack back into the program counter.
Flags: No flags are affected.
Format:
Bytes Cycles Opcode
(Hex)
Addr Mode
dst
opc dst 3 14 F6 DA
opc dst 2 12 F4 IRR
opc dst 2 14 D4 IA
Examples: Given: R0 = 35H, R1 = 21H, PC = 1A47H, and SP = 0002H:
CALL 3521H SP = 0000H
(Memory locations 0000H = 1AH, 0001H = 4AH,
where, 4AH is the address that follows the instruction.)
CALL @RR0 SP = 0000H (0000H = 1AH, 0001H = 49H)
CALL #40H SP = 0000H (0000H = 1AH, 0001H = 49H)
In the first example, if the program counter value is 1A47H and the stack pointer contains the value
0002H, the statement "CALL 3521H" pushes the current PC value onto the top of the stack. The
stack pointer now points to the memory location 0000H. The PC is then loaded with the value
3521H, the address of the first instruction in the program sequence to be executed.
If the contents of the program counter and the stack pointer are the same as in the first example,
the statement "CALL @RR0" produces the same result except that the 49H is stored in stack
location 0001H (because the two-byte instruction format was used). The PC is then loaded with the
value 3521H, the address of the first instruction in the program sequence to be executed. Assuming
that the contents of the program counter and the stack pointer are the same as in the first example,
if the program address 0040H contains 35H and the program address 0041H contains 21H, the
statement "CALL #40H" produces the same result as in the second example.