- •Оглавление
- •Введение
- •Методы разработки алгоритмов и программ имитационных моделей комбинационных схем и последовательных автоматов с памятью
- •Методы разработки алгоритмов имитационных моделей комбинационных схем
- •Непосредственнее решение функций алгебры логики
- •Метод бинарных функций
- •Решение функции алгебры логики методом адресных переходов
- •Элементы памяти полупроводниковых устройств
- •Классификация триггерных устройств
- •Триггер как элементарный последовательный автомат
- •Наиболее популярные методы разработки алгоритмов и программ имитационных моделей с памятью
- •Асинхронные триггеры
- •Асинхронный rs-триггер
- •Асинхронные s-, r- и e-триггеры
- •Асинхронный d-триггер
- •Асинхронные т-триггеры
- •Асинхронные jk-триггеры с импульсным управлением
- •Асинхронные потенциально управляемые jk-триггеры
- •Синхронные (тактируемые) триггеры
- •Синхронный rs-триггер
- •Синхронный d-триггер
- •Синхронный jk-триггер
- •Универсальные d- и jk-триггеры
- •Примеры схем, построенных с применением jk-триггера к155тв1
- •Пример разработки имитационной модели триггерного устройства
- •Непосредственное решение уравнений, описывающих работу триггерной установки
- •Использование графа состояний триггерного устройства для разработки алгоритма
- •Применение таблицы переходов для решения поставленной задачи
- •Реализация дискретных устройств на микроконтроллерах pic16
- •Введение в программирование микроконтроллеров pic16
- •Краткие сведения об архитектуре микроконтроллеров pic16 и принципе их работы
- •Язык ассемблера pic16
- •Команды пересылки
- •Арифметические команды
- •Булевы операции
- •Битовые операции
- •Операции условного, безусловного переходов и вызова подпрограмм
- •Общий вид программы и типовые приемы программирования
- •Битовая арифметика
- •Ветвление
- •Вызов подпрограммы
- •Использование среды mplab
- •Моделирование комбинационных автоматов
- •Метод непосредственного вычисления фал
- •Метод бинарных функций
- •Метод адресных переходов (табулирование функций)
- •Приложение а. Исходные тексты примеров а.1. Применение метода непосредственного вычисление фал
- •А.2. Применение метода бинарных программ
- •А.3. Применение метода адресных переходов а.3.1. Способ размещения таблицы в пзу
- •А.3.2. Способ размещения таблицы в озу
- •А.4. Модуль hdw_init
- •Приложение б. Краткий справочник инструкций pic16
- •Библиография
- •Имитационное моделирование дискретных устройств
- •620034, Екатеринбург, ул. Колмогорова, 66.
Битовые операции
BCF – Очистка бита b регистра f
Синтаксис |
BCF f,b |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
Бит b регистра f устанавливается в 0. |
Пример |
; f(4) = 7 = 0b111 bcf 4,1 ; f(4) = 5 = 0b101 |
BSF – Установка бита b регистра f в единицу
Синтаксис |
BCF f,b |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
Бит b регистра f устанавливается в 1. |
Пример |
; f(4) = 5 = 0b101 bsf 4,1 ; f(4) = 5 = 0b111 |
Операции условного, безусловного переходов и вызова подпрограмм
BТFSC – Условный переход при нулевом бите b регистра f
Синтаксис |
BTFSC f,b |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
Если бит b регистра f устанавлен в 0, инкрементируется счетчик команд PC (тем самым, пропускается следующая команда), в противном случае ничего не выполняется. В случае инкремента счетчика команда выполняется за 2 машинных цикла, иначе – за 1. |
Пример |
; f(7) = 6 = 0b110, w = 1 btfsc 7,1 addlw 4 btfsc 7,0 addlw 9 ; w = 10 |
BТFSS – Условный переход при единичном бите b регистра f
Синтаксис |
BTFSS f,b |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
Если бит b регистра f устанавлен в 1, инкрементируется счетчик команд PC (тем самым, пропускается следующая команда), в противном случае ничего не выпоняется. В случае инкремента счетчика команда выполняется за 2 машинных цикла, иначе – за 1. |
Пример |
; f(7) = 6 = 0b110, w = 1 btfss 7,1 addlw 4 btfss 7,0 addlw 9 ; w = 5 |
DECFSZ – Декремент регистра f и пропуск в случае нулевого результата
Синтаксис |
DECFSZ f,d |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
Первым шагом происходит декремент регистра f и запись полученного результата в f или W в зависимости от операнда d. На втором шаге, если результат первого шага оказался нулевым, происходит инкремент регистра-счетчика команд PC, тем самым вызывая пропуск следующей команды. |
Пример |
; f(7) = 6, w = 0 loop: addlw 3 decfsz 7,1 goto exit_loop goto loop exit_loop: ; f(7) = 0, w = 18 |
CALL – Вызов подпрограммы
Синтаксис |
CALL k |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
Адрес
следующей инструкции сохраняется в
стеке. В 11 младших бит счетчика программы
PC
загружается константа k.
Два старших бита загружаются в счетчик
команд
|
Пример |
; w = 0 call subprogram addlw 5 ; w = 15 ... subprogram: addlw 10 return |
RETLW – Выход из подпрограммы с загрузкой в регистр W константы k
Синтаксис |
RETLW k |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
В регистр W загружается константа k. В счетчик команд PC загружается значение с вершины стека. Команда выполняется за 2 машинных цикла. |
Пример |
; w = 6 call subprogram ; w = 12 ... subprogram: nop retlw 12 |
RETURN – Выход из подпрограммы
Синтаксис |
RETURN |
Операнды |
|
Операция |
|
Измен. флаги |
|
Описание |
В счетчик команд PC загружается значение с вершины стека. Команда выполняется за 2 машинных цикла. |
Пример |
; w = 6 call subprogram ; w = 8 ... subprogram: addlw 2 return |
