Intel 8XC251SQ Microscope & Magnifier User Manual


 
5-15
PROGRAMMING
5.5.3 Unconditional Jumps
There are five unconditional jumps. NOP and SJMP jump to addresses relative to the program
counter. AJMP, LJMP, and EJMP jump to direct or indirect addresses.
NOP (No Operation) is an unconditional jump to the next instruction.
SJMP (Short Jump) jumps to any instruction within -128 to 127 of the next instruction.
AJMP (Absolute Jump) changes the lowest 11 bits of the PC to jump anywhere within the
current 2-Kbyte block of memory. The address can be direct or indirect.
LJMP (Long Jump) changes the lowest 16 bits of the PC to jump anywhere within the
current 64-Kbyte region.
EJMP (Extended Jump) changes all 24 bits of the PC to jump anywhere in the 16-Mbyte
address space. The address can be direct or indirect.
5.5.4 Calls and Returns
The MCS 251 architecture provides relative, direct, and indirect calls and returns.
ACALL (Absolute Call) pushes the lower 16 bits of the next instruction address onto the stack
and then changes the lower 11 bits of the PC to the 11-bit address specified by the instruction.
The call is to an address that is in the same 2-Kbyte block of memory as the address of the next
instruction.
LCALL (Long Call) pushes the lower 16 bits of the next-instruction address onto the stack and
then changes the lower 16 bits of the PC to the 16-bit address specified by the instruction. The
call is to an address in the same 64-Kbyte block of memory as the address of the next instruction.
ECALL (Extended Call) pushes the 24 bits of the next instruction address onto the stack and then
changes the 24 bits of the PC to the 24-bit address specified by the instruction. The call is to an
address anywhere in the 16-Mbyte memory space.
RET (Return) pops the top two bytes from the stack to return to the instruction following a sub-
routine call. The return address must be in the same 64-Kbyte region.
ERET (Extended Return) pops the top three bytes from the stack to return to the address follow-
ing a subroutine call. The return address can be anywhere in the 16-Mbyte address space.