LRCross (Метод.указания, список комманд, ассемблер, отладчик и пример), страница 3
Описание файла
Файл "LRCross" внутри архива находится в папке "Метод.указания, список комманд, ассемблер, отладчик и пример". PDF-файл из архива "Метод.указания, список комманд, ассемблер, отладчик и пример", который расположен в категории "". Всё это находится в предмете "вычислительные сети и системы" из 7 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "вычислительные системы и микропроцессоры" в общих файлах.
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
– время выполнения программы.Алгоритм двукратной ЧПК прост в реализации, однако при егоиспользовании в случае обработки пачки с фиксированным началом (не в«скользящем окне») необходимо правильно задать начальные условия. ПоложитьХ0=Х-1=0 нецелесообразно, так как это приведет к резким выбросам выходного–8–процесса в моменты k = 1 и k = 2. Один отсчет не дает возможности осуществитьфильтрацию, при двух отсчетах Х1 и Х2 уже можно использовать алгоритмоднократной ЧПК У1 = Х1 - Х2 для режекции низкочастотной помехи.
При трех и болеевходных отсчетах используется алгоритм двукратной ЧПК. Отметим, что программноменять вид и параметры алгоритма обработки является достоинствоммикропроцессорных устройств, таким образом, при пачке объемом 20 импульсов, какопределенно в задании, выходной массив данных будет содержать 19 отсчетов,причем первый выходной отсчет У1 = Х1 - Х 2.Структурную схему программы составим применительно к уровню операцийс регистрами микропроцессора : А – аккумулятор, В, С, D, Е, Н , L – регистрамиобщего назначения, SP – регистром указателем стека. Операции загрузки регистрасодержим ячейки памяти будем обозначать R = X, где R – один из регистров, Х –содержимое ячейки. Операцию занесения в память обозначим Х= R, где Х –содержимое регистра, заносимое в память, R – обозначение регистра.
Операции надсодержимым регистров записываем как над переменными, например : А=В –пересылка содержимого регистра В в аккумулятор, А=А+С - сложение содержимогорегистров А и С с занесением суммы в А и т.д.При разработке программы стремимся время на обращение к памяти имаксимально использовать регистры микропроцессора.
Примем следующеераспределение регистров для хранения информации:регистр А – отсчет Хк-2регистр В – отсчет Хк-1регистр С – число оставшихся отсчетоврегистр D – отсчет Хк+1регистр Е – отсчет Хкрегистры H-L – адрес очередного записываемого в память выходногоотсчетарегистр SP – адрес очередного загружаемого в регистры входного отсчета.Такое распределение регистров позволяет за одно обращение к стеку, которыйназначается в области памяти, содержащей входные отсчеты, загрузить в рабочиерегистры для входных отсчета и получить два выходных отсчета.Структурная схема программы приведена на рис.
1. В блоках 1, 2, 5осуществляется начальная загрузка регистров в соответствии с принятымраспределением. Блок 3 – реализация алгоритма ЧПК – 1 для первых двух отсчетов.Блок 4 – запись У1 в память. Цикл по числу отсчетов начинается с блока 6 – загрузки впару регистров D- Е очередной пары входных отсчетов Хк и Хк+1. Блоки 7 и 12 –реализация алгоритма ЧПК-2, причем умножение на 2 заменено двукратнымвычитанием, а блоки 8 и 13 – занесение в память выходных отсчетов Ук и Ук+1.
Вблоках 9 и 15 осуществляется декрементация (уменьшение на 1) содержимогосчетчика числа оставшихся отсчетов, а в блоках 10 и 16 – проверка на равенство егонулю. Нулевое содержимое счетчика (регистра С) означает окончание программы.Поскольку число отсчетов четно, то первую проверку (блок 10) можно изъять изпрограммы. Ее включение делает программу более универсальной. В блоке 14осуществляется пересылка содержимого регистров в соответствии с принятымсоглашением, подготавливающая следующий цикл.–9–НАЧАЛО1)С = Х12)3);В = Х2А=СА=А-В4)Y1 = A5)A=C6)E = XK7)A=A–B–B+E; C = 18; D = XK+18)YK = A9)C=C–1ДА10) C = 0 ?НЕТ11)12)13)14)15)НЕТA=BA=A–E–E+DYK+1 = AA=E;B=DC=C–116) C = 0ДАКОНЕЦРис.
1– 10 –Структурная схема рис.1 не содержит указаний на способ адресации ячеекпамяти, однако из принятых соглашений о регистрах, ясно, что входные и выходныемассивы будут адресоваться косвенно – первый как стек, второй – через парурегистров H –L. Во втором случае нужно своевременно инкрементировать (увеличитьна 1) содержимое H-L перед записью очередного отсчета в память.Текст программы на языке ассемблера представлен на рис.2. Псевдокомандой(директивой) ассемблера EQU определяется значение адреса массива входныхотсчетов ВХ, а псевдокомандой DS – резервируется 19 байт под массив выходныхотсчетов. Все числовые значения (адреса и непосредственные операнды) могутзаписываться в программе либо шестнадцатеричными символами с префиксом h’,либо десятичными – без префикса или двоичными с префиксом – b’.
Так число 1810записывается как h’12, Метки требуется отделять от обозначения командыдвоеточием, а комментарии начинать символом «;». Блок 6 структурной схемы впрограмме помечен меткой CIKL.ПРОГРАММА ОБРАБОТКИ ПАЧКИ ИМПУЛЬСОВ С ПОМОЩЬЮДВУКРАТНОЙ СИСТЕМЫ ЧПКCIKL:KON:BY:.EQULXILXIPOPMOVSUBMOVMOVMVIPOPSUBSUBADDINXMOVDCRJZMOVSUBSUBADDINXMOVMOVMOVDCRJNZHLT;.DS.END;BX, h'12B0;H, BY;SP, BX;B;A, C;B;M, A;A, C;C, 12;D;B;B;E;H;M, A;C;KON;A, B;E;E;D;H;M, A;A, E;B, D;C;CIKL;19;ЗАДАНИЕ СИМВОЛ. АДРЕСА BXЗАГР. АДРЕСА МАССИВА BY B H-LЗАГР.
АДРЕСА МАССИВА BX В SPЗАГР. B <= X (2), С <= X (1)ЗАГР. А < = X (1)(А) = X (1) - X (2) = Y (1)ЗАНЕСЕНИЕ Y (1) В ПАМЯТЬЗАГРУЗКА X (1) В АККУМУЛЯТОРЗАГР. С - СЧЕТЧИКА ОТСЧЕТОВЗАГР. D < = X (К+1) , Е < = X (К)(А) = (A) – X (К-1)(A) = (A) – X (К-1)(A) = (A) + X (К) = Y(К)ИНКРЕМЕНТ АДРЕСА В H-LЗАНЕСЕНИЕ Y (К) В ПАМЯТЬДЕКРЕМЕНТ СЧЕТЧИКА ЦИКЛОВВЫXОД ИЗ ЦИКЛА , ЕСЛИ (С) =0ЗАНЕСЕНИЕ В АККУМУЛЯТОР X (К-1)(A) = (A) - X (К)(A) = (A) - X (К)(A) = (A) - X (К+1) = Y (К+1)ИНКРЕМЕНТ АДРЕСА В H-LЗАНЕСЕНИЕ Y (К+1) В ПАМЯТЬ(А) = X (К)(B) = X (К+1)ДЕКРЕМЕНТ СЧЕТЧИКА ЦИКЛОВВОЗВРАТ НА CIKL, ЕСЛИ (С) > 0ОСТАНОВ ПРОЦЕССОРАРЕЗЕРВ. 19 БАЙТ ПОД МАССИВ BYКОНЕЦ ПРОГРАММЫРис.
2На рис.3 приведен листинг трансляции исходной программы кросс-ассемблеромPseudoSam 85 (исполняемый файл A85.com). Первая колонка каждой строки листинга– номер строки исходного текста, вторая колонка – адрес или константа,определенная директивой EQU, четвертая – машинный код процессора(шестнадцатеричный результат трансляции), пятая – мнемоника команды, шестая –операнды команды, седьмая – комментарий.– 11 –000001 12B0000002 0000 212400000003 0003 31B012000004 0006 C1000005 0007 79000006 0008 90000007 0009 77000008 000A 79000009 000B 0E0C000010 000D D1000011 000E 90000012 000F 90000013 0010 83000014 0011 23000015 0012 77000016 0013 0D000017 0014 CA2300000018 0017 78000019 0018 93000020 0019 93000021 001A 82000022 001B 23000023 001C 77000024 001D 7B000025 001E 42000026 001F 0D000027 0020 C20D00000028 0023 76000029 0024000030 0024.EQULXILXIPOPMOVSUBMOVMOVMVICIKL:SUBSUBADDINXMOVDCRJZMOVSUBSUBADDINXMOVMOVMOVDCRJNZKON:BY:.END;BX, h'12B0;H, BY;SP, BX;B;A, C;B;M, A;A, C;C, 12;POP D;B;B;E;H;M, A;C;KON;A, B;E;E;D;H;M, A;A, E;B, D;C;CIKL;HLT;.DS19;ЗАДАНИЕ СИМВОЛ.
АДРЕСА BXЗАГР. АДРЕСА МАССИВА BY B H-LЗАГР. АДРЕСА МАССИВА BX В SPЗАГР. B <= X (2), С <= X (1)ЗАГР. А < = X (1)(А) = X (1) - X (2) = Y (1)ЗАНЕСЕНИЕ Y (1) В ПАМЯТЬЗАГРУЗКА X (1) В АККУМУЛЯТОРЗАГР. С - СЧЕТЧИКА ОТСЧЕТОВЗАГР. D < = X (К+1) , Е < = X (К)(А) = (A) – X (К-1)(A) = (A) – X (К-1)(A) = (A) + X (К) = Y(К)ИНКРЕМЕНТ АДРЕСА В H-LЗАНЕСЕНИЕ Y (К) В ПАМЯТЬДЕКРЕМЕНТ СЧЕТЧИКА ЦИКЛОВВЫXОД ИЗ ЦИКЛА , ЕСЛИ (С) =0ЗАНЕСЕНИЕ В АККУМУЛЯТОР X (К-1)(A) = (A) - X (К)(A) = (A) - X (К)(A) = (A) - X (К+1) = Y (К+1)ИНКРЕМЕНТ АДРЕСА В H-LЗАНЕСЕНИЕ Y (К+1) В ПАМЯТЬ(А) = X (К)(B) = X (К+1)ДЕКРЕМЕНТ СЧЕТЧИКА ЦИКЛОВВОЗВРАТ НА CIKL, ЕСЛИ (С) > 0ОСТАНОВ ПРОЦЕССОРАРЕЗЕРВ.
19 БАЙТ ПОД МАССИВ BYКОНЕЦ ПРОГРАММЫКонстанты, определенные ассемблером:=12B0BXBY=0024CIKL =000DKON =0023Рис. 3Одновременно с листингом программы кросс-ассемблером формируется файлобъектного модуля, содержащий только управляющие коды микропроцессора КР580.Файл создается на той же папке, в которой записана исходная программа. Принеобходимости его можно просмотреть на экране дисплея или распечатать спомощью принтера.Порядок выполнения работы1. Получить у преподавателя задание на разработку программы.2.
Составить структурную схему программы и утвердить ее у преподавателя.3. Подготовить программу на языке ассемблера.4. Записать программу в файл на магнитном диске под именем«имяпрограммы.ASM», пользуясь экранным редактором текстов.5. Выполнить трансляцию программы кросс-ассемблером A856. При наличии синтаксических ошибок в программе просмотреть файл листинга«имяпрограммы.lst». С помощью редактора текстов, исправить очевидные ошибки,вызвав на редактирование файл «имяпрограммы.ASM», и провести повторнуютрансляцию программы.7. Вывести файл листинга «имяпрограммы.lst» на печать.– 12 –8.
Проанализировать оставшиеся ошибки, а также особенности трансляциидвухбайтовых и трехбайтовых команд, представления абсолютных адресов влистинге программы.9. Подсчитать время выполнения программы в машинных тактах, пользуясьПриложением 1.10. Запустить эмулятор выполнения программ процессора i8085 – файлAVSIM85.EXE11. Выполнить программу в пошаговом режиме с помощью эмулятора иотладчика AVSIM85.12. Убедиться в правильности выполнения кода программы.Содержание отчета1. Задание на разработку программы.2.
Структурная схема программы.3. Листинг трансляции программы.4. Пояснения ошибок в листинге и результат подсчета времени выполненияпрограммы.Контрольные вопросы1. Поясните различия резидентного и кросс-программного обеспечения.2. Каково назначение трансляторов, интерпретаторов, редакторов связей,компоновщиков, загрузчиков, отладчиков, редакторов текста, эмуляторов?3. В чем преимущества языка ассемблера перед языками высокого уровня присоставлении управляющих программ устройств обработки сигналов?4. Какие этапы обработки проходит программа управления микропроцессорнойсистемой, написанная на алгоритмическом языке внешней ЭВМ до момента ее записив ПЗУ микропроцессорной системы?5.
Какие требования предъявляются к управляющим программаммикропроцессорных устройств обработки сигналов?6. Укажите пути оптимизации управляющих программ по объему требуемойпамяти и быстродействию.Литература1. Бруханский А.В., Жуков С.Г., Карташкин А.С. Микропроцессорные устройстваобработки радиолокационной и радионавигационной информации. – М., МАИ, 19872.