64 bits is 64 bits whether the high bit is a sign or part of the number. Loading 64 bits into a register loads 64 bits unaltered. The high bit becomes the high bit, 0 or 1.
As @Gary says, it only matters when the sending field is smaller than the receiving register. (And then only when the sign bit is 1; a negative number IOW.) An LG of X'87654321' into a register gives you FFFFFFFF87654321. An LLG gives you 0000000087654321. If the source is X'01234567' then either instruction gives you the same result. LH and LB also do sign extension. ICM and IC do not. Charles -----Original Message----- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Gary Weinhold Sent: Thursday, April 28, 2022 3:00 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Unsigned 64-bit numbers When loading 8 bytes into an 64-bit register, you needn't worry about logical vs. arithmetic. The sign only makes a difference if it's less than a doubleword being loaded. An LG will load it.. On 2022-04-28 5:20 p.m., Schmitt, Michael wrote: > How did you do it in COBOL? > > Gary Weinhold Senior Application Architect DATAKINETICS | Data Performance & Optimization Phone:+1.613.523.5500 x216 Email: weinh...@dkl.com Visit us online at www.DKL.com E-mail Notification: The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system. -----Original Message----- > From: IBM Mainframe Assembler List<ASSEMBLER-LIST@LISTSERV.UGA.EDU> On > Behalf Of Dave Clark > Sent: Tuesday, February 1, 2022 11:39 AM > To:ASSEMBLER-LIST@LISTSERV.UGA.EDU > Subject: Unsigned 64-bit numbers > > I previously asked about 32-bit unsigned numbers and that opened up > some new instructions (new to me, anyway: LLGF, LLGH, etc) for loading > unsigned numbers into registers. But now I have need to load a 64-bit > unsigned value into a register and I don't see an LLGD instruction for that. > > In case it makes a difference, this value is a timestamp (presumably > from the store-clock instruction) but it is stored in an 8-byte file field. > Now I need to take the file field and turn it into a date and a time value. > I have done this in REXX and COBOL but now I need to do it in assembler. > Actually, I have done something similar in assembler but it was for the CICS > ABSTIME value -- which is a 15-digit packed number, not binary. > > So, any hints? Thanks. > > Sincerely, > > Dave Clark > -- > > This message and any attachments are intended only for the use of the > addressee and may contain information that is privileged and confidential. If > the reader of the message is not the intended recipient or an authorized > representative of the intended recipient, you are hereby notified that any > dissemination of this communication is strictly prohibited. If you have > received this communication in error, please notify us immediately by e-mail > and delete the message and any attachments from your system.