No, it's not correct. At the very least, this:
Again CMP.B (A0)+,D2 //Compare A0 to D2, then increment A0 by 1
...is not comparing the content of A0 to anything. It's comparing a byte at the address contained in A0 to a byte in D2 (then incrementing A0 to point to the next address).
If I'm not mistaken, in these lines:
NEXT SUB.B #1,D0 //Subtract 1 from D0
BNE Again //Branch to AGAIN if contents of A0 is not equal to D2
The zero-flag should be set/cleared based on the result of the immediately preceding sub.b
, so it's continuing for 0x20 iterations (because D0 was loaded with 0x20 in the first line).