I am going to *guess* that NILF takes a signed 31-bit integer, and thus -16 is valid; whereas NILL takes an unsigned 16-bit integer, and thus -4 is no good.
You could test my hypothesis with NILL R15,X'FFFC' . My guess is that it will be valid. Charles -----Original Message----- From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On Behalf Of Steve Smith Sent: Thursday, July 19, 2018 9:26 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Inconsistency with NILL vs. NILF An issue I raised on IBM-MAIN led to discussing how to round an address to a 16-byte (quad-word) boundary. The C example included the expression <code>p &= -16;</code>. I suggested that the NILL & NILF instructions could handle this, but probably wouldn't. So... <quote> Re specification of rounding mask: I do think -16, -8, etc. are an elegant way to specify these, particularly as they correlate to 16-byte, 8-byte, etc. boundaries. I sure wish they were usable with NILL and NILF. Well, I decided to check before complaining... and (surprise!): 0000028C 0000 0000 00000000 481 NILL R15,-4 ** ASMA031E Invalid immediate or mask field 00000290 C0FB FFFF FFF0 00000000 482 NILF R15,-16 483 * Sigh. </quote> Given what J. Scott has said before, I guess this is yet another consequence of how HLASM handles numbers. -- sas