Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPSS Lab.rab.(ru) 2011-07-16 EP.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.79 Mб
Скачать

Лабораторная работа № 4

Тема работы: «Организация циклических вычислений».

Теоретические сведения

При создании управляющих программ часто возникает необходимость в организации циклических процедур. Эти процедуры могут быть реализованы на языке ассемблер по аналогии с языками высокого уровня, в частности BASIC.

В ассемблере процессоров семейства PIC рациональным является организация цикла, соответствующая форме цикла в BASIC и Assembler следующего рода:

BASIC: FOR n=10 to 1 STEP -1 … NEXT n

Эта структура эквивалентна следующим командам:

n = 10

LOOP …

n = n - 1

IF n<>0 THEN GOTO LOOP

Assembler:

MOVLW .10

MOVWF c_n

LOOP …

DECFSZ c_n, f

GOTO LOOP

В ассемблере этот цикл строится на основе команд:

DECFSZ f, d – уменьшение на единицу содержимого регистра f, пропустить следующую строку, если f равен нулю;

GOTO Label – выполняет переход к указанной команде (в приведенных в таблице фрагментах Label=LOOP).

Преимуществом такой записи является то, что количество повторов явно указано перед телом цикла, что более привычно, так как соответствует записям на языках высокого уровня и делает программу более понятной.

Ход работы

  1. Составить две программы, осуществляющие расчет контрольных сумм заданного количества показаний АЦП, получаемых из регистра ADRES:

    1. Однобайтовой суммы N данных, где N – сумма номеров первых трех букв фамилии. Для проверки принять показания АЦП равными N;

    2. Трехбайтовой суммы 1000*N данных.

  2. Составить алгоритм выполнения обработки данных.

  3. На основе составленного алгоритма создать программу обработки данных с пошаговыми комментариями происходящего.

  4. Выполнить компиляцию и проверку программы в симуляторе.

  5. Рассчитать вручную результат циклических вычислений и сравнить его с результатом работы симулятора.

Контрольные вопросы.

  1. Принцип организации циклов в ассемблере.

  2. Принцип работы команды INCF .

  3. Принцип работы команды DECFSZ .

  4. Принцип организации вложенных циклов.

Лабораторная работа № 5

Тема работы: «Обработка массивов данных»

Теоретические сведения

Во всех языках программирования под массивами подразумевают совокупность идентичных элементов, располагаемых в памяти друг за другом. Каждый элемент характеризуется размеров в байтах (size), а весь массив – количеством элементов (длиной, lenght – лент). Под объявлением массива подразумевается резервирование в памяти данных области размером lenght*size. Обработка массивов обычно заключается в выполнении некоторых идентичных операций с каждым элементом. Для того, чтобы эти операции были описаны одинаковыми командами, и программа имела минимальный размер, необходимо организовать доступ к элементам массива с помощью косвенной адресации, а процедуру обработки поместить в цикл.

CBLOCK

d_x:size*len ; резерв массива d_x

c

ENDC

m_dim_ini MOVLW d_x

MOVWF FSR

m_for_i MOVLW NI

MOVWF c_i

m_loop_i

INCF FSR, f

DECFSZ c_i, f

GOTO m_loop_i

Объявление массива

Запись в FSR начального адреса массива

Организация цикла

Тело цикла

Окончание цикла

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]