Dsplnk.exe lab4.cmd
⇐ ПредыдущаяСтр 6 из 6 5.2.3 Запустить имитатор процессора, набрав sim5x.exe При этом автоматически загрузится программа лабораторной работы lab4.out, файл с макрокомандами alias.bat. Текст программы приведен ниже. 5.2.4 Ознакомиться с программой (пункт 5.2.6) и выполнить ее в пошаговом режиме по меткам direct1, direct2, direct3, direct4, indirect1, indirect, indirect3, indirect4, circular1, circular2, руководствуясь соответствующими комментариями: 1) DIRECT1: во фрагменте используется прямая адресация ячеек памяти для записи результатов операций и непосредственная адресация слагаемого. Наберите команду DP – вывод указателя страницы памяти.Наберите команду mem 0x200 - вывод в окно MEMORY области памяти данных с адреса 0x200. Выполняйте программу по шагам до достижения очередной метки, наблюдая изменение содержимого ACC и памяти; 2) DIRECT2: во фрагменте DIRECT2 при аналогичных командах изменяется страница памяти для размещения результатов: содержимое памяти по адресу 0x200 не меняется - изменилось значение DP. Наберите mem 0x280 для отражения страницы памяти 5 - область памяти c адреса 0x280; 3) DIRECT3: во фрагменте DIRECT3 используетсяпрямая адресация памяти для результатов и прямая адресация слагаемых. Наберите команду mem 0x200. Обратите внимание, что при прямой адресации слагаемых к содержимому АСС прибавляется не значение, стоящее в команде, а содержимое соответствующей ячейки памяти; 4) DIRECT4 во фрагменте по сравнению с предыдущим случаем произведена смена текущей страницы памяти данных. Наберите mem 0x280 для просмотра содержимого этой страницы и продолжите выполнение программы; 5) INDIRECT1 во фрагменте используется косвенная адресация ячеек памяти для записи результатов операций и непосредственная адресация слагаемого. Наберите команду mem 0x200. Следите за содержимым текущего ARn в окне CPU и изменением содержимого ячейки памяти, указываемой текущим вспомогательным регистром;
6) INDIRECT2: Во фрагменте INDIRECT2 по сравнению с предыдущим случаем при аналогичных командах изменяется вспомогательный регистр, используемый для адресации и номера ячеек памяти для размещения результатов. Наберите mem 0x280 для отображения содержимого ячеек; 7) INDIRECT3: Во фрагменте используется модификация текущего AR1 с использованием RG INDX. Обратите внимание: теперь содержимое текущего RG меняется с шагом, равным содержимыму INDX и запись информации в память идет в отличие от предыдущего случая сначала через одну ячейку (шаг = 2), а затем и через 3 ячейки (шаг = 4). Это определяется значениями, загружаемыми в INDX с помощью команд LMMR; 8) INDIRECT4: Во фрагменте программы используется изменение текущего вспомогательного регистра в команде сохранения результата SACL. Запись содержимого АСС происходит попеременно в ячейки памяти, указываемые AR1 и, AR2. Проверьте содержимое ячеек памяти с результатами вычислений. Для отображения на экране второй области памяти наберите команду mem1 0x200; 9) CIRCULAR1 Во фрагменте программы организуются два циклических буфера которые адресуются с помощью вспомогательных регистров AR6, AR3. Эти буфера поочерёдно, в цикле, заполняются возрастающими значениями. Причём буфер 1 (регистр AR6) заполняется в сторону возрастающих адресов, а буфер 2 (регистр AR3) в сторону уменьшения адресов. Наберите команды CBSR1, CBSR2, CBER1, CBER2 для отображения начальных и конечных адресов циклических буферов. Наберитекоманду mem 0x800 для отображения в окне MEMORY области памяти, в которой находятся оба буфера. Выполните фрагмент программы в пошаговом режиме, проследите порядок изменения адресуемых ячеек памяти для буферов 1 и 2; 10) CIRCULAR2 Во фрагменте повторяются команды предыдущего раздела. Отличие состоит в шаге изменения адресуемых ячеек памяти. В этом случае он определяется величиной, записанной в регистр INDX – в данном случае 2. Выполните фрагмент программы в пошаговом режиме, проследите порядок изменения адресуемых ячеек памяти для буферов 1 и 2.
5.2.5 По заданию преподавателя измените некоторые параметры программы: страницу памяти данных; непосредственно адресуемое значение; вспомогательные регистры, используемые для косвенной адресации. 5.2.6 Программа лабораторной работы lab4.out имеет следующий вид:
.version 50 mmregs global direct1, direct2, direct3, direct4 global indirect1, indirect2, indirect3, indirect4 sect "Vectors" RESET: B Init ND1:.sect "offset";Таблица смещений для регистра INDX word 2 word 4 text Init: LDP #0 LACC #00h OPL #4,PMST; Устанавливаем бит NDX в 1 ; чтобы использовать регистр INDX BEGIN: direct1: LDP #4; Страница памяти данных 4 SACL 0000h; Прямая адресация ADD #01h; Непосредственная адресация SACL 0001h ADD #01h SACL 0002h ADD #01h SACL 0003h ADD #01h direct2: LDP #5; Страница памяти данных 5 SACL 0000h; Прямая адресация ADD #01h; Непосредственная адресация SACL 0001h ADD #01h SACL 0002h ADD #01h SACL 0003h ADD #01h direct3: LDP #4; Страница памяти данных 4 SACL 0000h; Прямая адресация ADD 0000h; Прямая адресация SACL 0002h ADD 0002h SACL 0003h ADD 0003h SACL 0004h ADD 0004h direct4: LDP #5; Страница памяти данных 5 SACL 0000h; Прямая адресация ADD 0000h; Прямая адресация SACL 0001h ADD 0001h SACL 0002h ADD 0002h SACL 0003h ADD 0003h indirect1: MAR *,AR0; Задание текущего вспомогательного регистра LAR AR0,#200h; Установка начального значения AR0 LACC #00h; Прямая адресация SACL *+; Косвенная адресация ADD #01h SACL *+ ADD #01h SACL *+ ADD #01h SACL *+ ADD #01h indirect2: MAR *,AR1; Задание текущего вспомогательного регистра LAR AR1,#280h; Установка начального значения AR1 SACL *+; Косвенная адресация ADD #01h; Непосредственная адресация SACL *+ ADD #01h SACL *+ ADD #01h SACL *- indirect3: LMMR INDX,ND1; Запись значения в индексный регистр ADD #03h; Непосредственная адресация NOP SACL *0+; Косвенная адресация ADD #03h SACL *0+ ADD #03h SACL *0+ LMMR INDX,ND1+1;Изменение значения в индексном регистре NOP ADD #03h SACL *0+ ADD #03h SACL *0+ ADD #03h SACL *0+ indirect4: LACC #00h;Непосредственная адресация LAR AR2,#200h ADD #04h SACL *+,AR2; Косвенная адресация с изменением ; текущего вспомогательного регистра ADD #04h SACL *+,AR1 ADD #04h SACL *+,AR2 ADD #04h SACL *+,AR1 ADD #04h SACL *+,AR2 ADD #04h SACL *+,AR1 circular1: Buff1.bss Buffer1,11; Резервирование места под 1-ый буфер Buff2.bss Buffer2,11; Резервирование места под 2-ой буфер
LDP #0; DP=0 SPLK #10h,BRCR; Количество повторений блока команд SPLK #Buff1,cbsr1; Начальный адрес первого буфера SPLK #(Buff2+10),cbsr2; Начальныйй адрес второго буфера SPLK #(Buff1+10),cber1; Конечный адрес первого буфера SPLK #Buff2,cber2; Конечный адрес второго буфера
LAR AR6,#Buff1; Инициализация вспомогательных регистров, LAR AR3,#(Buff2+10); которые будут работать с буферами
MAR *,AR6; Задание AR6 - текущим
SPLK 0BEh,cbcr; Разрешение работы циклических буферов и ; назначение AR6 для работы с первым буфером ; AR3 для работы со вторым буфером LACC #1; (ACC)=1
RPTB end_block-1; Этот блок повторяется в цикле 16 раз SACL *+,AR3; Сохранение содержимого аккумулятора SACL *-,AR6; Сохранение содержимого аккумулятора ADD #1; Изменение содержимого аккумулятора end_block: circular2: LDP #0; DP=0 LACC #1; (ACC)=1 SPLK #15h,BRCR; Количество повторений блока команд SPLK #Buff1,cbsr1; Стартовый адрес первого буфера SPLK #(Buff2+10),cbsr2; Стартовый адрес второго буфера SPLK #(Buff1+10),cber1; Конечный адрес первого буфера SPLK #Buff2,cber2; Конечный адрес второго буфера
LAR AR6,#Buff1; Инициализация вспомогательных регистров LAR AR3,#(Buff2+10); которые будут работать с буферами
MAR *,AR6;Назначение AR6 - текущим
SPLK 0BEh,cbcr; Разрешение работы циклических буферов и ; назначение AR6 для работы с первым буфером ; AR3 для работы со вторым буфером LMMR INDX,ND1 RPTB end_block1-1; Этот блок повторяется в цикле 21 раз SACL *0+,AR3; Сохранение содержимого аккумулятора SACL *0-,AR6; Сохранение содержимого аккумулятора ADD #1; Изменение содержимого аккумулятора end_block1 .end
Содержание отчета 5.3.1 Текст программы с подробными комментариями. 5.3.2 Ответы на контрольные вопросы. 5.3.3 Изменения, внесенные в программу по указанию преподавателя, выводы по полученным при этом результатам.
5.4 Контрольные вопросы 5.4.1 Назовите основные методы адресации процессора TMS320C5x. 5.4.2 Поясните, как формируется адрес при прямой адресации. 5.4.3 Поясните, как формируется адрес при непосредственной адресации. 5.4.4 Поясните, как формируется адрес при косвенной адресации. 5.4.5 В чём особенность циклической адресации. 5.4.6 Как задать циклический буфер?
5.4.7 Как изменяются адреса при циклической адресации?
Читайте также: Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|