Negation has several meanings depending on context.

*Arithmetic* negation involves flipping the MSB and adding 1.

*Logical* negation means flipping all the bits.

Read the description of the ALU carefully so that you use the correct negation.

There's also a

worksheet from ybakos that will help you understand the ALU.

You're correctly thinking that ZR is true if all the output bits are zero. It might be helpful to think about the converse as well: ZR is false if...

Feel free to email me what you have if you want comments.

--Mark