
7 DETAILS OF INSTRUCTIONS
106
EPSON
S1C33 FAMILY C33 PE CORE MANUAL
ld.h %rd, [%sp + imm6]
Function
Signed halfword data transfer
Standard) rd(15:0)
← H[sp + imm6 × 2], rd(31:16) ← H[sp + imm6 × 2](15)
Extension 1) rd(15:0)
← H[sp + imm19], rd(31:16) ← H[sp + imm19](15)
Extension 2) rd(15:0)
← H[sp + imm32], rd(31:16) ← H[sp + imm32](15)
Code
15 12 11 10 9 4 3 0
0 1 0 0 1 0
imm6 r d
0x48__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Flag
IE C V Z N
– – – – –
|
|
|
|
Mode
Src: Register indirect with displacement
Dst: Register direct
%rd = %r0 to %r15
CLK
Two cycles
Description
(1) Standard
ld.h
%rd,[%sp + imm6] ; memory address = sp + imm6 × 2
The halfword data in the specified memory location is transferred to the rd register after being
sign-extended to 32 bits. The content of the current SP with twice the 6-bit immediate
imm6
added as displacement comprises the memory address to be accessed. The least significant bit
of the displacement is always 0.
(2) Extension 1
ext imm13 ; = imm19(18:6)
ld.h
%rd,[%sp + imm6] ; memory address = sp + imm19,
;
imm6 = imm19(5:0)
The ext instruction extends the displacement to a 19-bit quantity. As a result, the content of the
SP with the 19-bit immediate imm19 added comprises the memory address, the halfword data in
which is transferred to the rd register. Make sure the
imm6 specified here resides on a halfword
boundary (least significant bit = 0).
(3) Extension 2
ext
imm13 ; = imm32(31:19)
ext
imm13 ; = imm32(18:6)
ld.h
%rd,[%sp + imm6] ; memory address = sp + imm32,
;
imm6 = imm32(5:0)
The two
ext instructions extend the displacement to a 32-bit quantity. As a result, the content
of the SP with the 32-bit immediate
imm32 added comprises the memory address, the halfword
data in which is transferred to the rd register. Make sure the
imm6 specified here resides on a
halfword boundary (least significant bit = 0).
Example
ext 0x1
ld.h %r0,[%sp + 0x2] ; r0
← [sp + 0x42] sign-extended
Komentarze do niniejszej Instrukcji