Вы используете довольно много макросов, которые я не понимаю, но основная проблема заключается в том, что вы ничего не делаете с результатами 'mul edx'.
Результат MUL EDX в edx: eax, и вы, кажется, выбрасываете эту информацию, не помещая ее в переменную ans.