7 DETAILS OF INSTRUCTIONS
7-50
EPSON
S1C17 FAMILY S1C17 CORE MANUAL
(3) Extension 2
ext
imm13
; imm13(10:0) = imm24(23:13)
ext
imm13
; = imm24(12:0)
ld
%rd,[%rb]
; memory address = rb + imm24
The addressing mode changes to register indirect addressing with displacement, so the content
of the rb register with the 24-bit immediate imm24 added comprises the memory address, the
16-bit data in which is transferred to the rd register. The content of the rb register is not altered.
The eight high-order bits of the rd register are set to 0.
(4) Address increment/decrement option
Specifying the []+, []-, or -[] option will automatically increment/decrement the memory
address. This allows the program to simply perform continuous data transfer.
ld
%rd,[%rb]+
Load instruction with post-increment option
The memory address will be incremented after the data transfer has
finished.
ld
%rd,[%rb]-
Load instruction with post-decrement option
The memory address will be decremented after the data transfer has
finished.
ld
%rd,-[%rb]
Load instruction with pre-decrement option
The memory address will be decremented before starting the data
transfer.
The address increment/decrement sizes are listed below.
When no ext is used (as in (1) shown above):
2 (16-bit size)
When one ext is used (as in (2) shown above): imm13
When two ext are used (as in (3) shown above): imm24
(5) Delayed slot instruction
This instruction may be executed as a delayed slot instruction by writing it directly after
a branch instruction with the “d” bit. In this case, extension of the immediate by the ext
instruction cannot be performed.
Caution
The rb register and the displacement must specify a 16-bit boundary address (least significant bit =
0). Specifying an odd address causes an address misaligned interrupt. Note, however, that the data
transfer is performed by setting the least significant bit of the address to 0.