Ld.a [%Sp], %Rs - Epson S1C17 Series Manual

Cmos 16-bit single chip microcontroller
Hide thumbs Also See for S1C17 Series:
Table of Contents

Advertisement

ld.a [%sp], %rs

Function
32-bit data transfer
Standard)
Extension 1) A[sp + imm13](23:0) ← rs(23:0), A[sp + imm13](31:24) ← 0
Extension 2) A[sp + imm24](23:0) ← rs(23:0), A[sp + imm24](31:24) ← 0
15 14 13 12 11 10
Code
0
0
1
|
|
IL
IE
C
Flag
|
|
Mode
Src: Register direct %rs = %r0 to %r7
Dst: Register indirect %sp
CLK
One cycle (two cycles when the ext instruction is used)
Description
(1) Standard
ld.a
The content of the rs register (24-bit data) is transferred to the specified memory location. The
SP contains the memory address to be accessed. This instruction writes 32-bit data with the
eight high-order bits set to 0 in the memory.
(2) Extension 1
ext
ld.a
The e x t instruction changes the addressing mode to register indirect addressing with
displacement. As a result, the content of the rs register is transferred to the address indicated
by the content of the SP with the 13-bit immediate imm13 added. The content of the SP is not
altered.
(3) Extension 2
ext
ext
ld.a
The addressing mode changes to register indirect addressing with displacement, so the content
of the rs register is transferred to the address indicated by the content of the SP with the 24-bit
immediate imm24 added. The content of the SP is not altered.
(4) 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 SP and the displacement must specify a 32-bit boundary address (two least significant bits =
0). Specifying other address causes an address misaligned interrupt. Note, however, that the data
transfer is performed by setting the two least significant bits of the address to 0.
S1C17 CORE MANUAL
(Rev. 1.2)
A[sp](23:0) ← rs(23:0), A[sp](31:24) ← 0
9
8
7
6
|
|
1
1
1
r s
0
|
|
|
|
|
V
Z
N
|
|
|
[%sp],%rs
; memory address = sp
imm13
[%sp],%rs
; memory address = sp + imm13
imm11
; imm11(10:0) = imm24(23:13)
imm13
; = imm24(12:0)
[%sp],%rs
; memory address = sp + imm24
Seiko Epson Corporation
5
4
3
2
1
0
0
1
1
1
0
0
|
|
|
|
|
|
7 DETAILS OF INSTRUCTIONS
7-81

Advertisement

Table of Contents
loading

Table of Contents