| Electronic Components Datasheet Search |
|
ST20-C1 Datasheet(PDF) 184 Page - STMicroelectronics |
|
|
|||||||||||||||||||||||||||||
ST20-C1 Datasheet(HTML) 184 Page - STMicroelectronics |
|
184 / 205 page ![]() 184/205 ® } } } The justification of this is as follows. If the depth of both expressions is less than the number of registers available ( r), then there is no need to store the result of the first evaluation in a temporary variable. The deeper expression is evaluated first to ensure that the operation evaluates in the least number of stack registers. If this were not done then the total depth requirement would have to be incremented due to the extra location for storing the result of the first e valuation. If both expression depths are as great as r, then a local variable (temp) must be used to store the result of the first expression. It is again better to evaluate the expression with the larger depth if possible, because this minimizes the number of local variables required. If only one of the expressions is as great as r, then provided that expression is evaluated first, there is no need to store its result in a local variable. In the cases where a temporary variable temp is required to hold the value of the first expression in the evaluation of e1 op e2, then that variable can be used as a temporary variable in the evaluation of the first e xpression. Also a temporary variable used in the evaluation of the first expression and not used to hold its result can be used in the evaluation of second expression. The code sequence (e2; e1; rev; op) at (*) in the above algorithm, can be optimized further to (e1; e2; op) removing the execution of the rev instruction. But be aware that the latter uses an extra stack register, and so there is trade-off here between evaluation depth and code size. C.4 Loading sequence The three registers of the evaluation stack are used to hold operands of instructions. Evaluation of an operand or parameter may involve the use of more than one register. Care is needed when evaluating such operands to ensure that the first oper and to be loaded is not pushed off the bottom of the evaluation stack by the evaluation of later operands. The processor does not detect evaluation stack overflow. Three registers are available for loading the first oper and, two registers for the second and one for the third. Consequently, the instructions are designed so that Creg holds the operand which, on average, is the most complex, and Areg the operand which is the least complex. In some cases, it is necessar y to evaluate the Areg and Breg operands in advance, and to store the results in temporary variables. This can sometimes be avoided using the reverse instruction. Any of the following sequences may be used to load the operands A, B and C into Areg, Breg and Creg respectively. |
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |