The ultimate result of this calculation is a boolean typed value (i.e., True or False). ArcMap does not have a boolean type built in, but you can simulate it in one of two ways:
If you are using a geodatabase, best practice would be to store the result of this calculation using an Attribute Domain that you define to your needs.
If that's overkill, you should still simulate a boolean type by storing FIELDNMCH as an integer (i.e., 1 or 0 meaning True or False). This allows you to do logical operations with these values in future analyses.
In either case you could get the answer by doing the following in the Field Calculator's Python parser:
!fieldname1! == !fieldname2!
If you want a match to mean True, or,
!fieldname1! != !fieldname2!
If you want True to mean that the fields don't match.
If you are absolutely married to the idea storing FIELDNMCH as the strings 'change' and 'no change', then in Field Calculator, use the following Python codeblock:
def hasChanged(oldRecord, newRecord):
if oldRecord == newRecord:
return 'no change'