Excalibur electronic A-MNL-NIOSPROG-01.1 manual Full Width Register-Indirect

Models: A-MNL-NIOSPROG-01.1

1 122
Download 122 pages 44.67 Kb
Page 24
Image 24

Overview

Full Width Register-Indirect

The LD and ST instructions can load and store, respectively, a full native- word to or from a register using another register to specify the address. The address is first aligned downward to a native-word aligned address, as described in the “Memory Access Overview” section. The K register is treated as a signed offset, in native words, from the native-word aligned value of the address register.

Table 11. Instructions Using Full Width Register-indirect Addressing

Instruction

Address Register

Data Register

 

 

 

LD

Any

Any

 

 

 

ST

Any

Any

 

 

 

Partial Width Register-Indirect

There are no instructions that read a partial word. To read a partial word, you must combine a full width register-indirect read instruction with an extraction instruction, EXT8d, EXT8s, EXT16d (32-bit Nios CPU only) or EXT16s (32-bit Nios CPU only).

Several instructions can write a partial word. Each of these instructions has a static and a dynamic variant. The position within both the source register and the native-word of memory is determined by the low bits of an addressing register. In the case of a static variant, the position within both the source register and the native-word of memory is determined by a 1- or 2-bit immediate operand to the instruction. As with full width register-indirect addressing, the K register is treated as a signed offset in native words from the native-word aligned value of the address register.

The partial width register-indirect instructions all use %r0 as the source of data to write. These instructions are convenient to use in conjunction with the FILL8 or FILL16 (32-bit Nios CPU only) instructions.

Table 12. Instructions Using Partial Width Register-indirect Addressing

Instruction

Address Register

Data Register

Byte/Half-word Selection

 

 

 

 

ST8s

Any

%r0

Immediate

 

 

 

 

ST16s*

Any

%r0

Immediate

 

 

 

 

ST8d

Any

%r0

Low bits of address register

 

 

 

 

ST16d*

Any

%r0

Low bits of address register

 

 

 

 

* 32-bit Nios CPU only

12

Altera Corporation

Page 24
Image 24
Excalibur electronic A-MNL-NIOSPROG-01.1 manual Full Width Register-Indirect, Partial Width Register-Indirect