- •Глава 1 позиционные системы счисления
- •Глава 2. Формат представления базовых данных
- •2. А положительное, b отрицательное и по абсолютной величине больше, чем а.
- •3. А положительное, b отрицательное и по абсолютной величине меньше, чем а.
- •4. А и в отрицательные.
- •Глава 2. Логические основы piCmicro
- •Элемент не
- •Элемент и
- •Элемент Исключающее или
- •Элемент или
- •Логические элементы в интегральном исполнении
- •Глава 3. Комбинационные устройства
- •Дешифраторы
- •Шифраторы
- •Мультиплексоры
- •Преобразователи кодов.
- •Сумматоры
- •Глава 4. Последовательностные устройства
- •Параллельные регистры
- •Последовательные (сдвиговые) регистры
- •Блок обработки информации алу/рабочий регистр
- •Счетчики импульсов
- •Глава 5. Запоминающие устройства Иерархия запоминающих устройств эвм
- •Иерархическая структура памяти
- •Структурная схема зу
- •Типы оперативных запоминающих устройств
- •Основные параметры запоминающих устройств
- •Микросхемы озу
- •Постоянные запоминающие устройства (пзу)
- •Флэш-память
- •Глава 6. Обработка хранимой программы
- •Режимы адресации
- •Устройство управления
- •Микроконтроллерная система
- •Глава 5. Архитектура микроконтроллера семейства p1c.
- •Регистр слова состояния status
- •Память данных
- •Параллельные порты ввода/вывода
- •Регистр таймера/счетчика tmr0
- •Eeprom память данных eedata, eeadr
- •Специальные регистры w, intcon, option
- •Глава 6. Требования языка ассемблер
- •Операнд
- •Комментарии в программах на ассемблере
- •Метка/Имя
- •Формат кодирования
- •Глава 7. Набор команд pic контроллера
- •Сложение
- •Очистка
- •Команды инкрементирования и декрементирования
- •Бит ориентированные команды
- •Вычитание
- •Глава 8. Логика и организация программ
- •Последовательное выполнение команд
- •Конструкция выбор пути
- •Команды передачи управления. Команда «нет операции»
- •Команда безусловного перехода
- •Команды условного перехода
- •Конструкция цикл
- •Косвенная адресация памяти данных
- •Глава 9. Модульное программирование
- •Временная задержка малой длительности.
- •Метод вложенных циклов
- •Временная задержка длительностью 1с.
- •10. Организация связи с оператором
Глава 6. Требования языка ассемблер
Запись программ в машинных кодах неудобна, поэтому для ее записи используется язык ассемблера, который является более высоким уровнем кодирования. На нем программист пользуется символическими мнемокодами и описательными именами для полей данных и адресов памяти.
Программа, написанная символическими мнемокодами, которые используются в языке ассемблера, представляет собой исходный модуль. Для формирования исходного модуля применяют любой подходящий экранный редактор. Затем с помощью программы ассемблерного транслятора исходный текст транслируется в машинный код, известный как объектная программа. И наконец, PIC Simulator IDE определяет все адресные ссылки для объектной программы, генерируя загрузочный модуль.
КОМАНДЫ И ДИРЕКТИВЫ
В состав программы входят команды и директивы.
Команды – это операторы, которые указывает ассемблеру, какое действие они должны выполнить (например, пересылка MOV или сложение ADD). Обработка ассемблером команды приводит к генерации машинного кода.
Директивы – это операторы, которые управляет процессом ассемблирования и формирования листинга. Они действуют только в процессе ассемблирования программы и не генерируют машинных кодов. Функции этих псевдокоманд состоят в подготовке к исполнению программы и определении границы, за которую программа выйти не может (директивы ORG и END).
Директива ORG устанавливает адрес начала процедуры.
Пример
ORG 100H ; вектор/адрес начала программы
ORG 4H ; вектор/адрес подпрограммы прерываний
Директива EQU определяет имя, которое может принять ячейка памяти (регистр).
Пример
TЕMР EQU 0СН ; определение имени ячейки памяти (регистра)
Имя, в данном случае ТЕМР, может быть представлено любым допустимым в ассемблере именем. Теперь, в какой бы команде или директиве не использовалось слово TЕMР ассемблер подставит значение 0СН.
Имя, связанное с некоторым значением с помощью директивы EQU, может использоваться в командах
Пример
TЕMР EQU 0СН ; определение имени ячейки памяти (регистра)
MOVWF TЕMР ; пересылка содержимого W в TЕMР
Ассемблер заменяет имя TЕMР в команде MOVWF на значение 0СН, копируя содержимое регистра W в эту ячейку.
Директива END дает указание Ассемблеру на прекращение трансляции.
Операнд
Если команда специфицирует выполняемое действие, то операнд определяет
а) начальное значение данных;
б) элементы, над которыми выполняется действие по команде (регистры и их разряды).
Данные используются в арифметических и логических операциях и для обозначения aдресов памяти. Ассемблер преобразует все числовые значения данных в шестнадцатеричные. Ниже показаны различные числовые форматы данных.
Десятичный формат. Десятичный формат допускает десятичные цифры от 0 до 9 и обозначается буквой D (Dec), например D’125’. Букву можно не указывать, поставив точку перед константой, например, .125. Несмотря на то, что ассемблер позволяет кодирование в десятичном формате, он преобразует эти значения в Hex объектный код. Например, десятичное число .125 преобразуется в 7DH.
Шестнадцатеричный формат. Шестнадцатиричный формат допускает шестнадцатеричные цифры от 0 до F и обозначается буквой Н (Hех). Так как ассемблер полагает, что с буквы начинаются идентификаторы, то первой цифрой шестнадцатеричной константы должна быть цифра от 0 до 9. Например, Н’2E’, H’0FF’, которую ассемблер преобразует соответственно в 2E, FF.
Двоичный формат. Двоичный формат допускает двоичные цифры 0 и 1 и обозначается буквой В (Bin). Например, B’10110011’. Двоичный формат обычно используется для более четкого представления битовых значений в логических командах AND, OR и XOR. Десятичное .12, 0CH и B’1100’ все генерируют один и тот же код: 0CH или 0000 1100B в зависимости от того, как вы рассматривает содержимое байта.
