[an error occurred while processing this directive]
|
Про то что если еспользовать эти одну из этих двух инструкции то получается один резултьтат, а вот если операнд не в A[16..31] а в T например то результат умножения другой.
Напомню в обоих случаях один операнд берется из Smem, а вот второй или из T или из A[16..31](одна из выше приведенных комманд)
Так вот если брать из T то умножение нормально проходит число в T со знаком, а вот если брать A[16..31] то эти 16 бит как бы беззнаковые
Например
1.MPYA: 0xa3ab * 0x77e = 0x4CA3B2A если 0xa3ab в A[16..31]
2.MPY 0xa3ab * 0x77e = 0xfd4c3b2a если 0xa3ab в T.
Вот это и вызывает интерес в явном виде вроде об этом не сказано - говориться что 16 бит A[16..31] идут в 17 битный умножитель, а про знак ни слова.
Вот.
E-mail: info@telesys.ru