ok, so mul_one_word_loc works now, but had to do something bad: coding the assembly by hand. Andrea was right, carrys are not kept correctly when separating the assembly statements. You have to do one big assembly statement.