In the original S/360, nearly all instructions that manipulated binary integers treated them as signed quantities. (It's the reason that 32K is a limit in so many places in z/OS e.g., block sizes, number of ASIDs, etc.) The assembler has a robust implementation of extended mnemonics to be used after signed arithmetic instructions.
Recent System z machines have put much more emphasis on unsigned (aka 'logical') arithmetic. There is now logical load, logical add (with or without carry), logical subtract (with or without borrow), logical multiply, logical divide, etc. This technology advance makes sense. In analyzing our assembler product code, it appears that _at least_ 90% of our binary integers are eligible for treatment as unsigned values (counts, offsets, masks, loop control, etc.). Legitimate needs for signed binary quantities are actually difficult to find! Surprisingly, in spite of this hardware instruction paradigm shift, the assembler still has not yet implemented a set of useful extended mnemonics for use after unsigned (logical) arithmetic instructions. Reading PoOp and hard-coding "BRC xx," is an error prone process. I "smell" a SHARE requirement. In the mean-time, I'm thinking about writing macros to provide this capability. Has anyone thought this through already and come up with what the mnemonics should be? -- Edward E Jaffe Phoenix Software International, Inc 831 Parkview Drive North El Segundo, CA 90245 http://www.phoenixsoftware.com/