Joined: 14 Jan 2008 Posts: 2504 Location: Atlanta, Georgia, USA
The answer to number one is X'00000001' (positive 1).
The answer to number two is X'00000000' (positive zero). Negative zero is illogical. But, you need to try this.
The answer to number three would be the negative sending register value would be equal to its positive counterpart. X'FFFFFFFF' becomes X'00000001'.
The answer to number four is whatever positive or negative value is in the sending register, it's negative or positive complement will be the result in the receiving register. X'FFFFFFFF' becomes X'00000001'.
I guess in certain situations LPR and LNR can be replaced by LCR, but that's entirely up to the programmer. Keeping the code self-documenting overrides "cuteness".
Review the POPS Manual link which I had given you several days ago and (to avoid possible future flaming), please test these instructions yourself.
As an alternative (and less intimidating than POPS), review the "Assembler Connection" at ===> http://www.simotime.com
FWIW, in COBOL, when you move a signed fullword-binary field to an unsigned fullword-binary field, the compiler generates a LPR before populating the unsigned fullword-binary field. This is to ensure an absolute value, which will then be addressed as a positive value.