[an error occurred while processing this directive]
|
Здравствуйте, GM!
Вот то, что получилось:
STLM A,AR3 ;
MVDK *SP(9),*(AR0) ; AR3 ~ Y2
MVMM SP,AR2 ; AR2 = SP
STM #_Y,AR4 ; AR4 = Y+j1+k
STM #127,AR7 ; AR7 = 127
;````````````````````````````````````````````````````````````````````
L421: MPY *AR3,*AR4+,A ; A = H[0]*Y[j1+0]; `
STL A,#-14,*AR2+ ; *temp++ = A>>14 `
;-----------------------------------------------------------; `
MPY *AR3+,*AR4-,A ; A = H[0]*Y[j1+1]; `
MAC *AR3+,*AR4,A ; A += H[1]*Y[j1+0]; `
STL A,#-14,*AR2+ ; *temp++ = A>>14 `
;-----------------------------------------------------------; `
MPY *AR3-,*AR4+,A ; A = H[2]*Y[j1+0]; `
MAC *AR3-,*AR4+,A ; A += H[1]*Y[j1+1]; `
MAC *AR3,*AR4+,A ; A += H[0]*Y[j1+2]; `
STL A,#-14,*AR2+ ; *temp++ = A>>14 `
;-----------------------------------------------------------; `
MPY *AR3+,*AR4-,A ; A = H[0]*Y[j1+3]; `
MAC *AR3+,*AR4-,A ; A += H[1]*Y[j1+2]; `
MAC *AR3+,*AR4-,A ; A += H[2]*Y[j1+1]; `
MAC *AR3+,*AR4,A ; A += H[3]*Y[j1+0]; `
STL A,#-14,*AR2+ ; *temp++ = A>>14 `
;-----------------------------------------------------------; `
MPY *AR3-,*AR4+,A ; A = H[4]*Y[j1+0]; `
MAC *AR3-,*AR4+,A ; A += H[3]*Y[j1+1]; `
MAC *AR3-,*AR4+,A ; A += H[2]*Y[j1+2]; `
MAC *AR3-,*AR4+,A ; A += H[1]*Y[j1+3]; `
MAC *AR3,*AR4+,A ; A += H[0]*Y[j1+4]; `
STL A,#-14,*AR2 ; `
;-----------------------------------------------------------; `
SQUR *AR2-,A ; `
SQURA *AR2-,A ; `
SQURA *AR2-,A ; `
SQURA *AR2-,A ; `
SQURA *AR2-,A ; `
STL A,#-15,*AR0+ ; `
BANZ L421,*AR7- ; `
;````````````````````````````````````````````````````````````````````
Итого: 12450 инструкций, размер 51 байт
К вопросу о подсчете тысяч. Это данные из профайлера Code Composer'a
E-mail: info@telesys.ru