Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМСС_лабораторные.doc
Скачиваний:
80
Добавлен:
07.06.2015
Размер:
4.19 Mб
Скачать
          1. Контрольные вопросы

  1. Каким языком программирования можно написать код для процессоров, рассматриваемых в работе?

  2. Назначение MPLAB SIM?

  3. Назначение MPLAD IDE?

  4. Объясните процесс компиляции проекта.

  5. Назначение окна Watch.

  6. Назначение окна Program Memory.

  1. Лабораторная работа №2. Основные регистры и инструкции микропроцессора. Битовые и логические инструкции.

          1. Цель работы

Изучить основные регистры микропроцессора. Научиться работать с битовыми и логическими инструкциями.

          1. Содержание работы

Работа микропроцессора, а также его основных блоков (АЦП, таймеры и т.д.) полностью зависят от настроек, которые хранятся в регистрах. Рассмотрим основные регистры микропроцессора (рисунок 1).

    1. 2.1 Рабочие регистры

В процессоре имеется 16 рабочих регистров (W0 –W15), которые могут использоваться как регистры, содержащие данные или команды, а также как регистры смещения (offsetregisters). Рабочие регистры 16-ти разрядные.

    1. 2.2 Регистры управления стеком

Регистры W14/FramePointer,W15/StackPointer,SPLIMуправляют работой программного стека. Если стек не используется, то рабочий регистрW14 можно использовать для работы.

    1. Аккумуляторы процессора

Аккумулятор A(ACCA) и аккумуляторB(ACCB) имеют 40 разрядов. В эти регистры записывается результат выполнения арифметических и сдвигающих операций. Каждый аккумулятор располагается в 3 регистрах памяти:

  • AccxU(39-42 биты)

  • AccxH(31-16 биты)

  • AccxL (15-0 биты)

    1. Программный счетчик

Программный счетчик (programcounter) имеет 23 разряда. Инструкции могут адресовать 4M*24 битной пользовательской программной памяти программным счетчиком.

    1. Табличные регистры

Регистр TBLPAG,PSVPAGиспользуется при операциях записи данных в память программ.

    1. Регистры управления циклом

Регистры RCOUNT,DCOUNT,DOSTART,DOENDпредназначены для организации циклов в выполняемом коде.

Рис. 2.1 – Регистры микропроцессора

    1. Регистр управления ядром процессора

Регистр CORCON– настраивает работу процессора (выбор между аккумуляторами, настройка уровня выполнения прерываний). В регистре статуса (STATUSREGISTER) располагаются битовые поля, характеризующие результат выполнения последней операции:

  • бит Z– установлен, если результат последней операции нулевой

  • бит C– установлен, если в последней операции был заем бита

  • бит N– установлен, если результат операции инверсный

  • бит OV– установлен, если в последней операции было переполнение

Рассмотрим битовые и логические операции. Полный список команд процессора представлен в приложении А.

    1. 2.3 Битовые операции

К основным битовым операциям относятся:

  • установка бита - BSET

  • сброс бита - BCLR

  • инверсия бита – BTG

Синтаксис операций можно посмотреть в таблице 5 приложения А.

    1. 2.4 Логические операции

К основным битовым операциям относятся:

  • логическая операция <и> - AND

  • логическая операция <или>-IOR

  • логическая операция <исключающее или>-XOR

  • логическая инверсия –COM

  • сброс всех битов регистра – CLR

  • установка всех битов регистра - SETM

Синтаксис операций можно посмотреть в таблице 3 приложения 1.

Пример программы, реализующий логическую функцию: d= (aand0xF00F)or(bandc)

.include "p33FJ256GP710.inc"

.equ a, 0x800

.equ b, 0x802

.equ c, 0x804

.equ d, 0x806

.text

.global __reset

__reset:

; - Инициализация переменных

mov #0x1111, W1

mov W1, a

mov #0x2222, W1

mov W1, b

mov #0x3333, W1

mov W1, c

; - Реализация логической функции

mov a, W1

mov #0xF00F, W2

and W1, W2, W3

mov b, W1

mov c, W2

and W1, W2, W4

ior W3, W4, W1

mov W1, d

nop

.end