Программа 28.3. Скалярное произведение на Ассемблере (оптимизировано). Это оптимизированная версия Программы 28.2, разработанная с учётом преимуществ высокопараллельной архитектуры SHARC
001 i12=_y /*i12 указывает на начало y[]*/
002 i4=_x /*i4 указывает на начало x[]*/
003
004 f2=dm(i4,m6); f4=pm(i12,m14); /*настроить
регистры*/
005 f8=f2*f4,
f2=dm(i4,m6), f4=pm(i12,m14);
006
007 lcntr=18, do(pc,1)until lce; /*высокоэффективный главный цикл*/
008 f12=f8+f12, f8=f2*f4, f2=dm(i4,m6), f4=pm(i12, m14)
009
010 f12=f8+f12, f8=f2*f4; /*завершить последний цикл*/
011 f12=f8+f12;
012
013 dm(_result)=f12 /*запомнить результат в памяти*/