Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Dsplnk.exe lab4.cmd





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- 2021 megalektsii.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.