< previous page page_173 next page >

Page 173
2. One or two source operands (of variable size) that are processed (executed) only up to the first occurrence of a particular byte. Usually, the result is the setting of a condition code. Instructions include CMP.C and CMP.P (decimal compare).
3. Operations with two source operands (of variable size) and a result operand that assumes the location and size of one of the operandsprimarily decimal arithmetic instructions.
The distribution of the first type of character operation (excluding decimal) is dominated by the MOVE. C (move character instruction), which copies one operand into a result operand. For a commercial mix, the operand distribution is:
Occurrence of these instructions9%*
Operand length32.6 bytes
* 16 out of 181 instr per 100 HLL operations; R/M architecture, Tables 3.16 and 3.5.

Some decimal support operations also have a single source, single result format. These include PACK and UNPK (changing from/to packed decimal format) and ZMOVE.P.
The second type of operation includes several instructions led by the CMP.C (compare logical characters) which compares two character strings and sets a condition code.
Operand length (specified in instruction)3.5B
Operand bytes processed until instruction completion2.0B

The frequency and length data are summarized in Tables 3.21 and 3.22.
As execution time is frequently limited by operand length, a simple improvement is to treat MOVE.C with special word (4- or 8-byte) oriented hardwarei.e., move four or eight bytes at a time. Other operations, because of their complexity, are processed serially.
Using the longer operand as the determinate of execution time, we compute the following estimates of operation length for the commercial environment:
(a) All MM operands
12.2B
(b) Excluding move character (type Ia in Table 3.22)
2.8B

Program behavior design rules summary
1. Determine application design environment.
2. Choose instruction set class most appropriate.
d87111c01013bcda00bb8640fdff6754.gif
Note the discussion in the text, i.e., an L/S machine that uses interprocedural register allocation uses the R/M data in the scientific environment. An L/S machine with full support for character and decimal operations may also resemble R/M behavior.

 
< previous page page_173 next page >