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

  1. Создайте новый проект. Процессор – dsPIC33FJ256GP710.

  2. Подключите необходимые библиотеки.

  3. Подключите отладчик (симулятор), встроенный в среду MPLABIDE.

  4. Разработать программу, выполняющую синтез сигнала специальной формы

    № Варианта

    Форма

    Частота, Гц

    1

    Синусоида

    50

    2

    Синусоида

    70

    3

    Синусоида

    90

    4

    Синусоида

    110

    5

    Синусоида

    40

    6

    Синусоида

    60

    7

    Пила

    50

    8

    Пила

    70

    9

    Пила

    90

    10

    Пила

    110

    11

    Пила

    40

    12

    Пила

    60

  5. Открыть окно Watchи внести в него все регистры, которые используются в коде. В пошаговом режиме отладить код, контролируя изменение регистров в окнеWatch. После отладки программы, показать код и результаты работы программы преподавателю.

  6. Создать блок схему программы.

  7. Подготовить отчет.

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

  1. Назвать регистры, которыми управляется модуль Output Compare.

  2. Как считается максимальное разрешение ЦАП. Какое максимальное разрешение можно добиться от ЦАП?

  3. Как можно изменить разрешение аналогового сигнала?

  1. Список литературы

  1. DS70157B. dsPIC30F/33F Programmer’s Reference Manual. High-Performance Digital Signal Controllers. Microchip Technology Inc. 2007.

  2. DS70165E. dsPIC33F Family Data Sheet. High-Performance, 16-Bit Digital Signal Controllers. Microchip Technology Inc. 2007.

  3. DS39747D. PIC24FJ128GA010 Family DataSheet. 64/80/100-Pin General Purpose,16-Bit Flash Microcontrollers. Microchip Technology Inc. 2007.

  4. DS70157B. dsPIC30F/33F Programmer's Reference Manual. High-Performance Digital Signal Controllers. Microchip Technology Inc. 2007.

  5. DS51456D. 16-Bit Language Tools Libraries. Microchip Technology Inc. 2007.

  1. Приложение 1. Ассемблерные инструкции микропроцессора

Таблица 1

Символы, используемые в описании кодов инструкций

Символ

Описание

#text

Означает литерал определённый как “текст“

(text)

Означает “содержимое текста“

[text]

Означает “позицию адресованную текстом”

{ }

Необязательное поле или операция

<n:m>

Битовая область регистра

.b

Выбор байтного режима

.d

Выбор режима двойного слова

.S

Выбор теневого регистра

.w

Выбор словного режима (по умолчанию)

Acc

Один из двух аккумуляторов {A, B}

AWB

Аккумулятор обратной записи назначения адреса регистра ∈ {W13, [W13] + = 2}

bit4

4-разрядное поле выбора бита (используется в инструкциях адресации слова) ∈ {0...15}

C, DC, N, OV, Z

Биты состояния MCU: (C)перенос, (DC)цифровой перенос, (N)отрицательный, (O)переполнение, (Z)ноль.

Expr

Абсолютный адрес, метка или выражение (решенный компоновщиком)

f

Адрес файлового регистра ∈ {0x0000...0x1FFF}

lit1

1-битный беззнаковый литерал ∈ {0,1}

lit4

4- битный беззнаковый литерал ∈ {0...15}

lit5

5- битный без знаковый литерал ∈ {0...31}

lit8

8- битный без знаковый литерал ∈ {0...255}

lit10

10- битный без знаковый литерал ∈ {0...255} для байтного режима, {0:1023} для словного режима

lit14

14- битный без знаковый литерал ∈ {0...16384}

lit16

16- битный без знаковый литерал ∈ {0...65535}

lit23

23- битный без знаковый литерал ∈ {0...8388608}

None

Поле не требует ввода, может быть пустым

OA, OB, SA, SB

Биты состояния DSP: ACCA переполнение, ACCB переполнение, ACCA насыщение, ACCB насыщение

PC

Программный счётчик

Slit10

10-битный знаковый литерал ∈ {-512...511}

Slit16

16- битный знаковый литерал ∈ {-32768...32767}

Slit6

6- битный знаковый литерал ∈ {-16...16}

Wb

Основной W регистр ∈ {W0..W15}

Wd

Регистр приемник ∈ { Wd, [Wd], [Wd++], [Wd--], [++Wd], [--Wd] }

Wdo

Регистр приемник ∈{ Wnd, [Wnd], [Wnd++], [Wnd--], [++Wnd], [--Wnd], [Wnd+Wb] }

Wm,Wn

Рабочая регистровая пара делимого и делителя (прямая адресация)

Wm*Wm

Рабочая регистровая пара множимого и множителя для квадратных инструкций ∈{W4 * W4,W5 * W5,W6 * W6,W7 * W7}

Wm*Wn

Рабочая регистровая пара множимого и множителя для DSP инструкций ∈{W4 * W5,W4 * W6,W4 * W7,W5 * W6,W5 * W7,W6 * W7}

Wn

Один из 16 рабочих регистров ∈ {W0..W15}

Wnd

Один из 16 рабочих регистров приемника ∈ {W0..W15}

Wns

Один из 16 рабочих регистров источника ∈ {W0..W15}

WREG

W0 (рабочий регистр используемый в инструкциях файловых регистров)

Ws

Регистр источник W ∈ { Ws, [Ws], [Ws++], [Ws--], [++Ws], [--Ws] }

Wso

Регистр источник W ∈{ Wns, [Wns], [Wns++], [Wns--], [++Wns], [--Wns], [Wns+Wb] }

Wx

Пространство данных X инструкций упреждающей выборки адрес регистра для DSP∈{[W8] + = 6, [W8] + = 4, [W8] + = 2, [W8], [W8] - = 6, [W8] – = 4, [W8] - = 2, [W9] + = 6, [W9] + = 4, [W9] + = 2, [W9], [W9] - = 6, [W9] - = 4, [W9] - = 2,

[W9 + W12],none}

Wxd

Пространство данных X инструкций упреждающей выборки назначения для DSP ∈ {W4..W7}

Wy

Пространство данных Y инструкций упреждающей выборки адрес регистра для DSP∈{[W10] + = 6, [W10] + = 4, [W10] + = 2, [W10], [W10] - = 6, [W10] - = 4, [W10] - = 2,

[W11] + = 6, [W11] + = 4, [W11] + = 2, [W11], [W11] - = 6, [W11] - = 4, [W11] - = 2,[W11 + W12], none}

Wyd

Пространство данных Y инструкций упреждающей выборки назначения для DSP ∈ {W4..W7}

Таблица 2

Инструкции перемещения

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

EXCH Wns,Wnd

Обменять Wns и Wnd

1

1

MOV f {, WREG}

Переместить f в заданный приемник. Если регистр не определен, то результат сохраняется в файловый регистр.

1

1

MOV WREG, f

Переместить WREG в f

1

1

MOV f, Wnd

Переместить f в Wnd

1

1

MOV Wns, f

Переместить Wns в f

1

1

MOV.B #lit8, Wnd

Переместить 8-битный литерал в Wnd

1

1

MOV #lit16,Wnd

Переместить 16- битный литерал в Wnd

1

1

MOV [Ws+Slit10],Wnd

Переместить [Ws+знаковое 10-битное смещение] в Wnd

1

1

MOV Wns,[Wd+Slit10]

Переместить Wns в [Wd+ знаковое 10-битное смещение]

1

1

MOV Ws,Wd

Переместить Ws в Wd

1

1

MOV.D Ws,Wnd

Переместить 32-битное значение из регистровой пары Ws:Ws+1 в регистровую пару Wnd:Wnd+1

1

2

MOV.D Wns,Wd

Переместить 32-битное значение из регистровой пары Wns:Ws+1 в регистровую пару Wd:Wd+1

1

2

SWAP Wn

Обмен полубайтами в Wn

1

1

TBLRDH Ws,Wd

Чтение старшего слова в Wd

1

2

TBLRDL Ws,Wd

Чтение младшего слова в Wd

1

2

TBLWTH Ws,Wd

Запись Ws в младшее слово

1

2

TBLWTL Ws,Wd

Запись Ws в старшее слово

1

2

Таблица 3

Арифметические инструкции

Синтаксис на языке Ассемблер

Описание инструкции

Кол-во слов

Кол-во цик-лов

ADD f{,WREG}(1)

f=f+WREG. Необязательный

операнд WREG определяет регистр приемник.

1

1

ADD #lit10,Wn

Wn=lit10+Wn

1

1

ADD Wb,#lit5,Wd

Wd=Wb+lit5

1

1

ADD Wb,Ws,Wd

Wd=Wb+Ws

1

1

ADDC f{,WREG}(1)

Приемник=f+WREG+(C),

С - бит переноса регистра состояния.

1

1

ADDC #lit10,Wn

Wn=lit10+Wn+(C)

1

1

ADDC Wb,#lit5,Wd

Wd=Wb+lit5+(C)

1

1

ADDC Wb,Ws,Wd

Wd=Wb+Ws+(C)

1

1

DAV.B Wn

Wn=десятичная настройка Wn

1

1

DEC f{,WREG}(1)

Приемник=f-1

1

1

DEC Ws,Wd

Wd=Ws-1

1

1

DEC2 f{,WREG}(1)

Приемник=f-2

1

1

DEC 2 Ws,Wd

Wd=Ws-2

1

1

DIV.S Wm,Wn

Целочисленное знаковое деление 16/16-бит

1

18

DIV.SD Wm,Wn

Целочисленное знаковое деление 32/16-бит

1

18

DIV.U Wm,Wn

Целочисленное беззнаковое деление 16/16-бит

1

18

DIV.UD Wm,Wn

Целочисленное беззнаковое деление 32/16-бит

1

18

DIVF Wm,Wn

Знаковое деление чисел с плавающей точкой 16/16-бит

1

18

INC f{,WREG}(1)

Приемник=f+1

1

1

INC Ws,Wd

Wd=Ws+1

1

1

INC2 f{,WREG}(1)

Приемник=f+2

1

1

INC2 Ws,Wd

Wd=Ws+2

1

1

MUL f

W3:W2=f*WREG

1

1

MUL.SS Wb,Ws,Wnd

{Wnd+1,Wnd}=sign(Wb)*sign(Ws)

1

1

MUL.SU Wb,#lit5,Wnd

{Wnd+1,Wnd}=sign(Wb)*unsign(lit5)

1

1

MUL.SU Wb,Ws,Wnd

{Wnd+1,Wnd}=sign(Wb)*unsign(Ws)

1

1

MUL.US Wb,Ws,Wnd

{Wnd+1,Wnd}= unsign(Wb)*sign(Ws)

1

1

MUL.UU Wb,#lit5,Wnd

{Wnd+1,Wnd}= unsign(Wb)*unsign(lit5)

1

1

MUL.UU Wb,Ws,Wnd

{Wnd+1,Wnd}= unsign(Wb)*unsign(Ws)

1

1

SE Ws,wnd

Wnd=дополненный знаком Ws

1

1

SUB f{,WREG}(1)

Приемник=f – WREG

1

1

SUB #lit10,Wn

Wn=Wn - lit10

1

1

SUB Wb,#lit5,Wd

Wd=Wb-lit5

1

1

SUB Wb,Ws,Wnd

Wd=Wb-Ws

1

1

SUBB f{,WREG}(1)

Приемник=f – WREG – ()

1

1

SUBB #lit10,Wn

Wn=Wn - lit10 - ()

1

1

SUBB Wb,#lit5,Wd

Wd=Wb-lit5 - ()

1

1

SUBB Wb,Ws,Wnd

Wd=Wb-Ws - ()

1

1

SUBBR f{,WREG}(1)

Приемник= WREG – f – ()

1

1

SUBBR Wb,#lit5,Wd

Wd= lit5 - Wb- ()

1

1

SUBBR Wb,Ws,Wnd

Wd= Ws - Wb- ()

1

1

SUBR f{,WREG}(1)

Приемник= WREG – f

1

1

SUBR Wb,#lit5,Wd

Wd= lit5 - Wb

1

1

SUBR Wb,Ws,Wnd

Wd= Ws - Wb

1

1

ZE Ws,Wnd

Wnd=дополненный нулем Ws

1

1

Таблица 4

Логические инструкции

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

AND f{,WREG}

Приемник=f AND WREG

1

1

AND #lit10,Wn

Wn=lit10 AND Wn

1

1

AND Wb,#lit5,Wd

Wb=Wb AND lit5

1

1

AND Wb,Ws,Wd

Wd=Wb AND Ws

1

1

CLR f

f=0x0000 (очистить f)

1

1

CLR WREG

WREG=0x0000 (очистить WREG)

1

1

CLR Wd

Wd=0x0000 (очистить Wd)

1

COM f{,WREG})

Приемник=

1

1

COM Ws,Wd

Wd=

1

1

IOR f{,WREG}

Приемник=f OR WREG

1

1

IOR #lit10,Wn

Wn=lit10 OR Wn

1

1

IOR Wb,#lit5,Wd

Wb=Wb OR lit5

1

1

IOR Wb,Ws,Wd

Wd=Wb OR Ws

1

1

NEG f{,WREG}(see Note)

Приемник=+1

1

1

NEG Ws,Wd

Wd=+1

1

1

SETM f

f=0xFFFF (установка f)

1

1

SETM WREG

WREG=0xFFFF (установка WREG)

1

1

SETM Wd

Wd=0xFFFF (установка Wd)

1

1

XOR f{,WREG}(see Note)

Приемник=f XOR WREG

1

1

XOR #lit10,Wn

Wn=lit10 XOR Wn

1

1

XOR Wb,#lit5,Wd

Wb=Wb XOR lit5

1

1

XOR Wb,Ws,Wd

Wd=Wb XOR Ws

1

1

Таблица 5

Инструкции сдвига

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

ASR f{,WREG}

Приемник= арифметический сдвиг содержимого f на один бит вправо

1

1

ASR Ws,Wd

Wd= арифметический сдвиг содержимого Ws на один бит вправо

1

1

ASR Wb,#lit4,Wnd

Wnd= арифметический сдвиг содержимого Wb на lit4 бит вправо

1

1

ASR Wb,Wns,Wnd

Wnd= арифметический сдвиг содержимого Wb на Wns

1

1

LSR f{,WREG}(see Note)

Приемник= логический сдвиг содержимого f вправо на один бит

1

1

LSR Ws,Wd

Wd= логический сдвиг содержимого Ws вправо на один бит

1

1

LSR Wb,#lit4,Wnd

Wnd= логический сдвиг содержимого Wb вправо на lit4 бит.

1

1

LSR Wb,Wns,Wnd

Wnd= логический сдвиг содержимого Wb вправо на Wns

1

1

RLC f{,WREG}(see Note)

Источник = циклический сдвиг влево через регистр переноса f

1

1

RLC Ws,Wd

Wd= циклический сдвиг влево через регистр переноса Ws

1

1

RLNC f{,WREG}(see Note)

Приемник = циклический сдвиг влево (без регистра переноса) f

1

1

RLNC Ws,Wd

Wd= циклический сдвиг влево (без регистра переноса)Ws

1

1

RRC f{,WREG}(see Note)

Приемник = циклический сдвиг вправо через регистр переноса f

1

1

RRC Ws,Wd

Wd= циклический сдвиг вправо через регистр переноса Ws

1

1

RRNC f{,WREG}(see Note)

Приемник = циклический сдвиг вправо (без регистра переноса) f

1

1

RRNC Ws,Wd

Wd= циклический сдвиг вправо (без регистра переноса)Ws

1

1

SL f{,WREG}(see Note)

Приемник = смещение влево f

1

1

SL Ws,Wd

Wd= смещение влево Ws

1

1

SL Wb,#lit4,Wnd

Wnd= смещение влево Wb на lit4

1

1

SL Wb,Wns,Wnd

Wnd= смещение влево Wb на Wns

1

1

Таблица 6

Битовые инструкции

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

BCLR f,#bit4

Очистить бит #bit4 в f

1

1

BCLR Ws,#bit4

Очистить бит #bit4 в Ws

1

1

BSET f,#bit4

Установить бит #bit4 в f

1

1

BSET Ws,#bit4

Установить бит #bit4 Ws

1

1

BSW.C Ws,Wb

Записать бит C в Ws<Wb>

1

1

BSW.Z Ws,Wb

Записать бит Z в Ws<Wb>

1

1

BTG f,#bit4

Инвертировать бит #bit4 в f

1

1

BTG Ws,#bit4

Инвертировать бит #bit4 в Ws

1

1

BTST f,#bit4

Проверить бит #bit4 в f

1

1

BTST.C Ws,#bit4

Проверить бит #bit4 в Ws, результат проверки в C

1

1

BTST.Z Ws,#bit4

Проверить бит #bit4 в Ws, результат проверки в Z

1

1

BTST.C Ws,Wb

Проверить бит Wb в Ws, результат проверки в C

1

1

BTST.Z Ws,Wb

Проверить бит Wb в Ws, результат проверки в Z

1

1

BTSTS f,#bit4

Проверить бит #bit4 в f, затем его установить

1

1

BTST.C Ws,#bit4

Проверить бит #bit4 в Ws, затем его установить, результат проверки в C.

1

1

BTST.Z Ws,#bit4

Проверить бит #bit4 в Ws, затем его установить, результат проверки в Z.

1

1

FBCL Ws,Wnd

Find bit change form left (MSb) side

1

1

FF1L Ws,Wnd

Find bit one form left (MSb) side

1

1

FF1R Ws,Wnd

Find bit one form left (LSb) side

1

1

Таблица 7

Инструкции сравнения

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

BTSC f,#bit4

Проверить бит #bit4 в f ,если false, пропустить следующую операцию

1

1 (2 or 3 )

BTSC Ws,#bit4

Проверить бит #bit4 в Ws ,если false, пропустить следующую операцию

1

1 (2 or 3 )

BTSS f,#bit4

Проверить бит #bit4 в f ,если true, пропустить следующую операцию.

1

1 (2 or 3 )

BTSS Ws,#bit4

Проверить бит #bit4 в Ws ,если true, пропустить следующую операцию

1

1 (2 or 3 )

CP f

Compare (f – WREG)

1

1

CP Wb,#bit5

Compare (Wb – lit5)

1

1

CP Wb,Ws

Compare (Wb – Ws)

1

1

CPO f

Compare (f – 0x0000)

1

1

CPO Ws

Compare (Ws – 0x0000)

1

1

CPB f

Compare with Borrow (f – WREG - )

1

1

CPB Wb,#bit5

Compare with Borrow (f – lit5 - )

1

1

CPB Wb,Ws

Compare with Borrow (f – Ws - )

1

1

CPSEQ Wb,Wn

Сравнить Wb и Wn, если равны, пропустить следующую операцию

1

1 (2 or 3 )

CPSGT Wb,Wn

Сравнить Wb и Wn, если Wb>Wn, пропустить следующую операцию

1

1 (2 or 3 )

CPSLT Wb,Wn

Сравнить Wb и Wn, если Wb<Wn, пропустить следующую операцию

1

1 (2 or 3 )

CPSNE Wb,Wn

Сравнить Wb и Wn, если не равны, пропустить следующую операцию

1

1 (2 or 3 )

Таблица 8

Инструкции переходов

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

BRA Expr

Branch unconditionally

1

2

BRA Wn

Computed branch

1

2

BRA C,Expr

Branch if Carry (no Borrow)

1

1 (2)(1)

BRA GE,Expr

Branch if greater than or equal

1

1 (2)(1)

BRA GEU,Expr

Branch if unsigned greater than or equal

1

1 (2)(1)

BRA GT,Expr

Branch if greater than

1

1 (2)(1)

BRA GTU,Expr

Branch if unsigned greater than

1

1 (2)(1)

BRA LE,Expr

Branch if less than or equal

1

1 (2)(1)

BRA LEU,Expr

Branch if unsigned less than or equal

1

1 (2)(1)

BRA LT, Expr

Branch if less than

1

1 (2)(1)

BRA LTU,Expr

Branch if unsigned less than

1

1 (2)(1)

BRA N,Expr

Branch if Negative

1

1 (2)(1)

BRA NC,Wxpr

Branch if not Carry (Borrow)

1

1 (2)(1)

BRA NN,Expr

Branch if not Negative

1

1 (2)(1)

BRA NOV,Expr

Branch if not Overflow

1

1 (2)(1)

BRA NZ,Expr

Branch if not Zero

1

1 (2)(1)

BRA OA,Expr

Branch if Accumulator A Overflow

1

1 (2)(1)

BRA OB,Expr

Branch if Accumulator B Overflow

1

1 (2)(1)

BRA OV,Expr

Branch if Overflow

1

1 (2)(1)

BRA SA,Expr

Branch if Accumulator A Saturate

1

1 (2)(1)

BRA SB,Expr

Branch if Accumulator B Saturate

1

1 (2)(1)

BRA Z,Expr

Branch if Zero

1

1 (2)(1)

CALL Expr

Call subroutine

2

2

CALL Wn

Call indirect subroutine

1

2

DO #lit14,Expr

Выполнить код между данной инструкцией и меткой (lit14+1) раз

2

2

DO Wn,Expr

Выполнить код между данной инструкцией и меткой (Wn+1) раз

2

2

GOTO Expr

Go to address

2

2

GOTO Wn

Go to address indirectly

1

2

RCALL Expr

Relative call

1

2

RCALL Wn

Computed call

1

2

REPEAT #lit14

Повторить следующую инструкцию (lit14+1) раз

1

1

REPEAT Wn

Повторить следующую инструкцию (Wn+1) раз

1

1

RETFIE

Retum form interrupt enable

1

3 (2)(2)

RETLW #lit10,Wn

Retum with lit10 in Wn

1

3 (2)(2)

RETURN

Retum form subroutine

1

3 (2)(2)

Таблица 9

Инструкции для работы со стеком

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

LNK #lit14

Link Frame Pointer

1

1

POP f

Извлечь значение из стека в f

1

1

POP Wd

Извлечь значение из стека в Wn

1

1

POP.D Wnd

Извлечь двойное значение из стека в Wnd:Wnd+1

1

2

POP.S

Извлечь из теневого регистра

1

1

PUSH f

Поместить значение f в стек

1

1

PUSH Ws

Поместить значение Ws в стек

1

1

PUSH.D Wns

Поместить двойное значение Wns:Wns+1 в стек

1

2

PUSH.S

Поместить в теневой регистр

1

1

ULNK

Unlink Frame Pointer

1

1

Таблица 10

Инструкции управления

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

CLRWDT

Clear Watchdog Timer

1

1

DISI #lit14

Disadle interrupts (lit14+1) instruction cycles

1

1

NOP

No operation

1

1

NOPR

No operation

1

1

PWRSAV #lit1

Enter Power-saving mode lit1

1

1

Reset

Software device Reset

1

1

Таблица 11

Инструкции ЦСП

Синтаксис на языке Ассемблер

Описание инструкции

Количество слов

Количество циклов

ADD Acc

Add accumulators

1

1

ADD Ws,#Slit4,Acc

16-bit signed add to Acc

1

1

CLR Acc,Wx,Wxd,Wy,Wyd,AWB

Clear Acc

1

1

ED Wm*Wm,Acc,Wx,Wy,Wxd

Euclidean distance (no accumulate)

1

1

EDAC Wm*Wm,Acc,Wx,Wy,Wxd

Euclidean distance

1

1

LAC Ws,#Slit4,Acc

Load Acc

1

1

MAC Wm*Wn,Acc,Wx,Wy,Wyd,AWB

Multiply and accumulate

1

1

MAC Wm*Wm,Acc,Wx,Wxd, Wy,Wyd

Square and accumulate

1

1

MOVSAC Acc,Wx,Wxd,Wy,Wyd,AWB

Move Wx to Wxd and Wy to Wyd

1

1

MPY Wm*Wn,Acc,Wx,Wxd,Wy,Wyd

Multiply Wn by Wm to Acc

1

1

MPY Wm*Wm,Acc,Wx,Wxd,Wy,Wyd

Square toAcc

1

1

MPY.N Wm*Wn,Acc,Wx,Wxd,Wy,Wyd

-( Multiply Wn by Wm) to Acc

1

1

MSC Wm*Wn,Acc,Wx,Wxd,Wy,Wyd, AWB

Multiply and subtract from Acc

1

1

NEG Acc

Negate Acc

1

1

SAC Acc,#Slit4,Wd

Store Acc

1

1

SAC.R Acc,#Slit4,Wd

Store rounded Acc

1

1

SFTAC Acc,#Slit6

Arithmetic shift Acc by Slit6

1

1

SFTAC Acc,Wn

Arithmetic shift Acc by (Wn)

1

1

SUB Acc

Subtract accumulators

1

1

94