[an error occurred while processing this directive]
|
mpym *ar1, *cdp+, ac1 || mov HI(ac0),*ar2+ ; ac1 = lo(y)*hi(x) || store "ac0>>16 and "
mac *ar0, *cdp-, ac1 :: mpy *ar1,*cdp-,ac0 ; ac1 += hi(y)*lo(x) || ac0 = lo(y)*lo(x)
add ac1 << #16, ac0 ; ac0 = ac0 + (ac1 << 16)
cdp на входе должен указывать на memory-mapped регистр AC0, который есть и X и Z одновременно
ar0 и ar1 - указывать на ячейки памяти со старшей и младшей частями Y
ar2 на массив для складирования результатов.
нюанс - оно будет первое слово массива результатов прописывать X'ом, который был на входе.
E-mail: info@telesys.ru