все равно весьма далеко от чисто ассемблерного кода. примерно так это будет в асме:

LD HL,X
LD BC,Y
PUSH HL
AND A
SBC HL,BC
EX DE,HL ;DE=C=X-Y
POP HL ; восстанавливаем X

если же нужно просто арифметическое действие без сохранения исходных значений, все еще проще.