ST20-C1 STMICROELECTRONICS [STMicroelectronics], ST20-C1 Datasheet - Page 185

no-image

ST20-C1

Manufacturer Part Number
ST20-C1
Description
Instruction Set Reference Manual
Manufacturer
STMICROELECTRONICS [STMicroelectronics]
Datasheet
The choice of loading sequence, and of which operands should be evaluated in
advance is determined by the number of registers required to evaluate each of the
operands.
In particular, if C requires more than two registers it must be loaded before A and B . If
A or B requires more than two registers it must be evaluated before C and may need
to be stored in a temporary variable if C requires more than two registers.
Table 8.1 gives the instruction sequences needed for loading three operands into the
evaluation stack, where the number in the ‘load sequence’ column refers to the list
above. The columns labelled ‘temp’ indicate where a local variable is needed to
temporarily save an operand value in the load sequence. The variable ‘a’ is used to
store operand ‘A’ and the variable ‘b’ is used to store operand ‘B’.
1
2
3
4
C; B; A
C; A; B; rev
B; C; rev; A
A; C; rev; B; rev
> 2
C
2
registers
required
>2
>2
>2
>2
>2
>2
B
1
1
1
2
2
2
1
1
1
2
2
2
>2
>2
>2
>2
>2
>2
A
1
2
1
2
1
2
1
2
1
2
1
2
Table 8.1 Register loading sequences
b
*
*
*
temp
a
*
*
*
*
*
*
*
*
sequence
load
1
2
4
1
1
1
3
3
3
1
2
1
1
1
1
1
2
1
instructions
C; B; A
C; A; B; rev
A; C; rev; B; rev
C; B; A
A; stl a; C; B; ldl a
A; stl a; C; B; ldl a
B; C; rev; A
A; stl a; B; C; rev; ldl a
A; stl a; B; C; rev; ldl a
C; B; A
C; A; B; rev
A; stl a; C; B; ldl a
C; B; A
A; stl a; C; B; ldl a
A; stl a; C; B; ldl a
B; stl b; C; ldl b; A
B; stl b; C; A; ldl b; rev
A; stl a; B; stl b; C; ldl b; ldl a
185/205

Related parts for ST20-C1