By whygee on Sunday 9 February 2014, 12:37 - Architecture
I'm currently reviewing all the documentation of the YASEP. Going back to what I've done in the past, sometimes in a rush, and looking with the perspective of experience, gives me the opportunity to correct details that have become confusing in practice.
One example is the "Zero flag". It was created without thinking it through, during a frantic coding session.
It is affected only by the CMP instructions. The flag's value is the direct result of XORing both operands, then ORing all the bits. It uses the ROP2 unit's circuits, not the ALU's and it's independent from the Carry.
Why was it called "Zero" ? Maybe by habit. In fact it does not test if the operands are clear, even though it could. It tests if both operands are equal : it should be renamed to EQUAL / EQ and it would become coherent with the NEQ/EQ condition keywords. So let's do this !
20200411:
Look at Log#46 : The Zero status flag
The matter might be settled by ORing all the result bits at the end of the ALU...
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.