Поскольку все задействованные числа {4,7,5} очень малы, вы получаете определения данных, используя db
.
Но это также означает, что вычисления должны быть в байтах.
Напишите это вместо:
mov al, m1
mul m2 ;Leaves m1 * m2 in AX (4*7=28 so AL=28 and AH=0)
add al, m3
mov m4, al
Если вы используете операнд байтового размера ( m2 ) с инструкцией mul
, тогда AL
умножается на нее, а произведение двойной длины сохраняется в AX
.