[an error occurred while processing this directive]
|
|
Я тоже к нему пришел.
Но интереса ради я всё-таки уложил это в три команды:
Имеем:
MX1 = 0x1000; - сдвиг на 16 разрядов умножением
MY1 = 0x1;
DM - младшие слова
PM - старшие слова
I0,I4 - указатель на текущий элемент M0 = M4 = 0
I1,I5 - указатель на следующий элемент (M1 = M5 = 1)
Код:
{1. сохраним младшее слово в AR и загрузим новое значение в MX0,MY0}
AR = pass MR0, MX0=DM(I1,M1), MY0=PM(I5,M5);
{2. Сохраним старшее слово и перегрузим MR = МладшееСлово*1 }
PM(I4,M5) = MR1, MR = MX0*MY1 (UU);
{3. Сохраним младшее слово и вычислим MR как МладшееСлово + СтаршееСлово<<16}
DM(I0,M1)=AR, MR=MR+MX1*MY0 (UU);
Мн начинает нравится этот ассемблер :-))
E-mail: info@telesys.ru