For those from the 1960s, what signed integers are depends on the machines that we started on: ones' complement suggests that you started with CDC or UNIVAC. To those who started on the S/360 it's rwos' complement and to some, it's sign-magnitude.
How about decimal with a three-state sign? Name that machine. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf of Jon Perryman [jperr...@pacbell.net] Sent: Wednesday, June 7, 2023 5:15 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Shower thought Phil's question is why they chose the word "logical" for CL over 70 years ago. If you have logical comparisons, then all other comparisons must be illogical. To us, signed integer is ones complement with bit 0 being the sign but I suspect the hardware guys had a very different perspective. Same for packed decimal. Calling them compare illogical would be out of the question. Strange they didn't call them compare numeric. On Wednesday, June 7, 2023 at 10:22:30 AM PDT, Phil Smith III <li...@akphs.com> wrote: I was thinking about assembler today in the shower, as one does, and the L in instructions like CLC and CLI started bothering me: what's with the "Logical"? At first I thought "Hmm, I guessh it gives a logical answer-yes/no" but then realized that of course it doesn't: it's a real comparison, so CLI <value>,1 will give different CCs if <value> is 0 or 2. So where does this "Logical" come from? I'm sure it's something obvious! ...phsiii P.S. The way I got to that is the usual twisted path: I was thinking about something I have to hunt down in Outlook, and that I can't remember all of one of the search terms (it's a model number), but that Outlook search matches what you specify, so if I know the model starts with XYZ, then I can search that and it will match XYZABC. Which led me to thinking about almost exactly 43 years ago, when my then-mentor (dead for about forty of those years, alas) taught me how to use EXecute with CLC to do this in assembler.