Samsung S3F80JB manual Call Call Procedure, @Sp Pcl Pch

Models: S3F80JB

1 346
Download 346 pages 34.13 Kb
Page 154
Image 154

INSTRUCTION SETS3F80JB

CALL — Call Procedure

CALL

dst

 

 

Operation:

SP

SP – 1

 

@SP

PCL

 

SP

SP –1

 

@SP

PCH

 

PC

dst

The current 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:

opc

dst

 

 

 

opc

dst

 

 

 

 

 

 

opc

dst

 

 

 

 

Bytes

Cycles

Opcode

Addr Mode

 

 

(Hex)

dst

3

14

F6

DA

2

12

F4

IRR

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 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 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 stack pointer are the same as in the first example, if program address 0040H contains 35H and program address 0041H contains 21H, the statement "CALL #40H" produces the same result as in the second example.

6-26

Page 154
Image 154
Samsung S3F80JB manual Call Call Procedure, @Sp Pcl Pch