Что делать если компилятор nasm работает неправильно?
Где то ошибка в коде. Я много раз уже сталкивался с тем, что компилятор компилирует "неправильно". Потом всегда оказывалось, что ошибка моя, и компилятор не виноват. Где точно не знаю, я не специалист по ассемблеру. Такое часто получается с кодами которые не сам написал, а сделал ctrl+c, ctrl+v.
выдает непонятную фигню
Ну в программе нет проверки ввода, поэтому если вводить непонятную фигню, то и выводить она будет непонятную фигню. А если вводить цифры, так чтобы сумма не превышала 9, то приведённая программа прекрасно работает.
Это, правда не значит, что в этой программе нет ошибок. Я вижу как минимум одну:
res resb 1 
…
mov [res], eax
классическое переполнение буфера. Её наличие, правда, на результат повлиять не может.