My point, which I suspect that Shmuel understands very well, was that
for z/Architecture such a value as, say,

|target    DS      X'00'


speciifies a nominal single-byte value for the field target but is
silent about its data type.  It may be a single SBCS (ASCII or EBCDIC)
character; it may be a signed binary integer s in the interval -128 <=
s <= +127; it may be an unsigned binary integer u in the interval 0 <=
u <= 255, it may be a set of eight contiguous single-bit modal
switches (booleans), etc., etc.

This is important in general, and was important for Scott's question,
because the standard operations that can be performed on a value are
different for different data types.  One may concatenate an ASCII
character; but one does not, usually, subtract its value from the
current contents of a register.  (To forestall Shmuel the
qualification 'usually' in this statement must be emphasized.  There
are occasions---Hashing is the obvious example---on which data-type
punning is appropriate:  One may wish to treat a single character of a
two-, four-, or eight-character subsequence of characters as a binary
integer, add instances of them together, perhaps with FIXEDOVERFLOW
disabled, and divide the result by a suitable small prime p to obtain
a hash value H in the interval 0 <= H <= p - 1.  Operations of this
kind are not illegitimate; neither, however, are they the rule.)

Hexadecimal can in prinbciple be a data type, as it is in IBM HFP;
and, as others have pointed out, a machine that did native-mode
hexadecimal arithmetic, even addressing, could be constructed.  That
hypothetical artefact would not, however, be a z/Architecture machine.

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to