mov bx, ax
neg bx
je vois pas comment faire mieux
sinon en effet comme dit bjone, et puisque tu semble utiliser des valeurs 16 bits, ton truc est optimisable, surtout en MMX/SSE2 sachant que en complément à 2, -x = ~x + 1 que que ~ est équivalent à un ^ avec que des 1.