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