Extremely CISC instructions

Jay Jaeger cube1 at charter.net
Tue Aug 24 16:11:57 CDT 2021


On 8/23/2021 8:51 PM, Van Snyder via cctech wrote:
> On Tue, 2021-08-24 at 01:38 +0100, Tom Stepleton via cctalk wrote:
>> For the sake of illustration to folks who are not necessarily used to
>> thinking about what computers do at the machine code level, I'm
>> interested
>> in collecting examples of single instructions for any CPU
>> architecture that
>> are unusually prolific in one way or another.
> 
> IBM 1401 was a character-by-character machine, so most operations had
> costs proportional to field length.
> 
> One especially expensive (but very useful) operation was "move
> characters and edit."
> 
> Assuming a 17-character control word has been loaded to the
> destination, e.g.
> 
> "$   ,  0.  &CR&**"
> 
> to edit a data field "00257426" with a "negative" zone bit on the low-
> order digit, producing
> "$  2,574.26 CR **"
> 
> requires 41 memory accesses (including seven to fetch the instruction)
> -- 0.4715 milliseconds.
> 
> See pages 41-43
> at http://www.bitsavers.org/pdf/ibm/1401/A24-1403-5_1401_Reference_Apr62.pdf
> 
> On a machine where  the "Expanded Print Edit Feature" was added, the
> instruction cost even more. For example, the "Floating Dollar Sign"
> moves the dollar sign to immediately to the left of the most
> significant digit. This (and asterisk protection) was to prevent
> somebody from adding digits between a left-justified dollar sign and
> leading digits on printed checks. The above edit would cost two more
> memory cycles. If the datum had had more leading zeroes, even more
> cycles would have been required.

Useful for COBOL.  ;)

> 
> See pages 82-84.
> 
> Another expensive instruction was the simpler "move characters and
> suppress zeros" instruction. See page 38.
> 

Along those same lines, the IBM 1410 had what the 1401 had, plus:

http://www.bitsavers.org/pdf/ibm/1410/A22-0526-3_1410_princOps.pdf

- A very useful table lookup instruction (pp 29-31)
- At least 56 ways to move data, depending upon the "d" character
   (op modifier) specified (pp 25-28)
- A scan that could stop at various terminators without moving data
   (pp 26-27)


JRJ


More information about the cctalk mailing list