tiretrak 0 Posted November 12, 2021 (edited) · Report post в старой версии ассемблера(под DOS) были директивы работы с макросами.очень удобно в основном тексте написать: tap(i2, m2, D, mx0); и саму процедуру разместить в отдельном файле: .macro tap(%0, %1, %2, %3); %1 = %2; modify (%0, %1); {point to d-th tap} %1 = -%2; %3 = dm(%0, %1); {put d-th tap in data register} .endmacro; как такое организовать в VisualDSP++ 3.5 ? Edited November 12, 2021 by tiretrak Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gridinp 0 Posted November 12, 2021 · Report post а там препроцессор C-шный, то есть через #define. Читайте документ "Assembler and Preprocessor. Manual for ADSP-218x and ADSP-219x DSPs" Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tiretrak 0 Posted November 12, 2021 · Report post 41 минуту назад, gridinp сказал: а там препроцессор C-шный, то есть через #define. Читайте документ "Assembler and Preprocessor. Manual for ADSP-218x and ADSP-219x DSPs" читал,но как передать агрументы не нашел. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
gridinp 0 Posted November 12, 2021 (edited) · Report post Ну вот же на странице 2-7: #define ccall(x)\ r2=i6; i6=i7; \ jump (pc, x) (db); \ dm(i7+=m7)=r2;\ dm(i7+=m7)=pc Ваш случай: #define tap(a0, a1, a2, a3) \ a1 = a2; modify (a0, a1); \ a1 = -a2; a3 = dm(a0, a1) Edited November 12, 2021 by gridinp Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tiretrak 0 Posted November 12, 2021 · Report post 1 час назад, gridinp сказал: Ну вот же на странице 2-7: #define ccall(x)\ r2=i6; i6=i7; \ jump (pc, x) (db); \ dm(i7+=m7)=r2;\ dm(i7+=m7)=pc Ваш случай: #define tap(a0, a1, a2, a3) \ a1 = a2; modify (a0, a1); \ a1 = -a2; a3 = dm(a0, a1) благодарю, работает Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...