Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Написание текста программы на языке Ассемблер

Читайте также:
  1. CALL — Вызов подпрограммы
  2. I. Простые запросы на языке SQL
  3. III. Вкажіть номери речень які відповідають змісту текста
  4. III. Вкажіть номери речень які відповідають змісту текста.
  5. III. Вкажіть номери речень які відповідають змісту текста.
  6. III. Вкажіть номери речень які відповідають змісту текста.
  7. III. Вкажіть номери речень які відповідають змісту текста.

Исходный текст программы приведен далее:

;предварительные настройки

#include p16f873a.inc

CONFIG _HS_OSC;

ORG H'000';вектор сброса

CNT EQU H'A0';определение регистра счетчика с адресом А0 (банк 1)

 

;запись возрастающих чисел в ОЗУ

BCF STATUS,RP1; ┬ выбираем банк регистров 1

BSF STATUS,RP0; ┘

MOVLW H'20';загрузка в рабочий регистр адреса первого РОН в банке 0

MOVWF FSR;записываем начальный адрес в регистр косв. адресации

CLRF CNT;обнуляем регистр счетчик

M10: MOVF CNT,W;загружаем значение счетчика в рабочий регистр

MOVWF INDF;сохраняем очередной отсчет в косвенно адресуемый РОН

INCF FSR,F;увеличение адреса РОН в регистре косвенной адресации

INCF CNT,F;увеличение счетчика на 1

MOVF CNT,W;загружаем новое значение счетчика в рабочий регистр

XORLW H'60';сравниваем его с последним значением +1

BTFSS STATUS,Z;если совпадают то скачек через одну команду

GOTO M10;если не совпадают, то возврат к записи следующей ячейки

 

;копирование из ОЗУ в EEPROM

MOVLW H'20';загрузка в рабочий регистр адреса первого РОН в банке 0

MOVWF FSR;записываем начальный адрес в регистр косв. адресации

CLRF CNT;обнуляем регистр счетчик адреса EEPROM

M20: BSF STATUS,RP1; ┬ выбираем банк регистров 3

BSF STATUS,RP0; ┘

BTFSC EECON1,WR; ┬ проверка окончания предыдущей записи в EEPROM

GOTO M20; ┘

BCF STATUS,RP1; ┬ выбираем банк регистров 1

BSF STATUS,RP0; ┘

MOVF CNT,W;загружаем значение счетчика в рабочий регистр

BSF STATUS,RP1; ┬ выбираем банк регистров 2

BCF STATUS,RP0; ┘

MOVWF EEADR;сохраняем адрес очередной ячейки в регистре адреса

MOVF INDF,W;считываем данные из очередного РОН в рабочий регистр

MOVWF EEDATA;и сохраняем их в регистре данных EEPROM

BSF STATUS,RP1; ┬ выбираем банк регистров 3

BSF STATUS,RP0; ┘

BCF EECON1,EEPGD;выбираем EEPROM

BSF EECON1,WREN;разрешаем запись

BCF INTCON,GIE;запрещаем прерывания

MOVLW H'55'; ┐

MOVWF EECON2; │

MOVLW H'AA'; ├ обязательная последовательность из пяти команд

MOVWF EECON2; │

BSF EECON1,WR; ┘

BCF EECON1,WREN;запрещаем запись

BCF STATUS,RP1; ┬ выбираем банк регистров 1

BSF STATUS,RP0; ┘

INCF FSR,F;увеличение адреса РОН в регистре косвенной адресации

INCF CNT,F;увеличение счетчика на 1

MOVF CNT,W;загружаем новое значение счетчика в рабочий регистр

XORLW H'60';сравниваем его с последним значением +1

BTFSS STATUS,Z;если совпадают то скачек через одну команду

GOTO M20;если нет, то переход к копированию очередной ячейки

M30: GOTO M30;зацикливаемся здесь

END;конец программы

Трансляция исходного текста программы в машинные коды

Процесс создания нового проекта и компиляции программы подробно описан в лабораторной работе 1.


Дата добавления: 2015-07-08; просмотров: 190 | Нарушение авторских прав


Читайте в этой же книге: ВВЕДЕНИЕ | Компиляция исходного текста программы в машинные коды | Отладка (выполнение) программы | FLASH память программ | Энергонезависимая память данных EEPROM | Разработка алгоритма программы | Написание текста программы на языке Ассемблер | Трансляция текста программы в машинные коды | Разработка алгоритма программы | Написание текста программы на языке Ассемблер |
<== предыдущая страница | следующая страница ==>
Разработка алгоритма программы| Тестирование и отладка

mybiblioteka.su - 2015-2024 год. (0.006 сек.)