my carry flag conditional for subtraction operations is not right... somehow....

return ((~oldSrc + 1) & 0xFF > oldDst)

@Fuego try talking about it in plain english maybe?

what's the memory space you're working with? looks like 16 bit?

why are you doing & 0xFF? that's not gonna do anything to the number i think

Follow

@vahnj so if we want to test
00 - A0

~0 is 0xFF + 1 is 0x100 > 0xA5

which is right and 0 > 0xA5 is wrong....

you're right - thank you :)
register should be masked but the test here shouldnt be <3

@vahnj *dances* spent an hour walking back from the crash to find where i differed and when and then I've been scratching my head staring at that thing... haha

@Fuego assembly is a heck!! I really enjoyed hardware stuff in school though bc these little puzzles are way fun

@vahnj apparently also I just learned that CMP CPX and CPY do not set carry in any sane way

They just set carry if the register is larger than the operand which mathematically... is.... nonsense...?

@Fuego lolllll yea register math is fun and ridiculous

Sign in to participate in the conversation
Awoo Space

Awoo.space is a Mastodon instance where members can rely on a team of moderators to help resolve conflict, and limits federation with other instances using a specific access list to minimize abuse.

While mature content is allowed here, we strongly believe in being able to choose to engage with content on your own terms, so please make sure to put mature and potentially sensitive content behind the CW feature with enough description that people know what it's about.

Before signing up, please read our community guidelines. While it's a very broad swath of topics it covers, please do your best! We believe that as long as you're putting forth genuine effort to limit harm you might cause – even if you haven't read the document – you'll be okay!