Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MSP430_НВВ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.51 Mб
Скачать

2.2 Одноадресные команды

  • Команда: RRC - Rotate Right through Carry - вращение вправо через перенос

Синтаксис: rrc src

Операция: C MSB .. LSB C

Описание: Содержимое операнда источника сдвигается на один бит вправо, значение бита переноса записывается в старший значащий бит, младший бит записывается в бит переноса. Поддерживает байтовую и словную форму. Для словно формы MSB – 15-й бит, для байтовой – 7-й. Операнд может иметь любой тип, кроме непосредственного.

Флаги: флаги СZNV модифицируются согласно результату операции,

Пример: Сдвинуть вправо содержимое ячейки памяти, адрес которой содержится в R5

rrc @R5

  • Команда: RRA - Rotate Right Arithmetically - арифметический сдвиг вправо

Синтаксис: rra src

Операция: MSB MSB .. LSB C

Описание: Содержимое операнда источника сдвигается на один бит вправо, значение старшего бита не изменяется, младший бит записывается в бит переноса. Поддерживает байтовую и словную форму. Для словно формы MSB – 15-й бит, для байтовой – 7-й. Операнд может иметь любой тип, кроме непосредственного.

Флаги: флаги СZNV модифицируются согласно результату операции,

Пример: сдвинуть вправо содержимое регистра R5

rra R5

  • Команда: PUSH - поместить

Синтаксис: push src

Операция: SPSP-2

@SPsrc

Описание: Содержимое операнда источника src записывается в стек. Поддерживает байтовую и словную форму, но в любом случае на каждую команду расходуется два байта стека.

Флаги: Не модифицируются

Пример: Поместить на стек число 1234

push #1234

  • Команда: SWPB - SWaP Byte - перестановка

Синтаксис: swpb src

Описание: Меняет местами старший и младший байты источника. Не поддерживает байтовую форму. Не поддерживает непосредственную адресацию.

Флаги: Не модифицируются

Пример: Поменять местами байты в регистре R9

swpb R9

  • Команда: CALL - вызов

Синтаксис: call src

Операция: SP SP-2

@SP PC

PC src

Описание: Вызывает подпрограмму на исполнение. Для этого сначала сохраняет на стеке адрес возврата, после чего осуществляет переход на начало подпрограммы. Не поддерживает байтовую форму.

Флаги: Не модифицируются

Пример:

call #proc - вызов подпрограммы помеченной меткой proc

call proc - вызов подпрограммы, адрес которой содержится в ячейке памяти с именем proc

call r5 - вызов подпрограммы, адрес которой содержится в регистре R5

call @R5+ - вызов подпрограммы, адрес которой содержится в ячейке памяти, адрес которой в свою очередь, содержится в регистре R5, после чего содержимое R5 увеличивается на 2.

  • Команда: RETI - RETurn from Interrupt - возврат из подпрограммы обработки прерывания

Синтаксис: reti

Операция: SR @SP

SP SP+2

PC @SP

SP SP+2

Описание: Завершает подпрограмму обработки прерывания. Для этого сначала восстанавливает из стека содержимое статусного регистра, зафиксированное перед вхождением в прерывании, и передает управление на прерванный фрагмент программы.

Флаги: восстанавливаются.

  • Команда: SXT - Sign eXTend – расширение знака

Синтаксис: sxt src

Описание: Копирует 7-й бит операнда в его старшие биты. Команда используется для преобразования байта в слово. Не поддерживает байтовую форму. Не поддерживает непосредственную адресацию.

Флаги: флаги ZN модифицируются согласно результату операции, С = ~Z, V=0

Данные об объеме памяти, занимаемой командами, и скорость их исполнения приведена в таблице 3. Формат данных в таблице – такой же как в таблице 2.

Таблица 3

RRA,RRC,

SWPB,SXT

PUSH

CALL

Регистровый

1 / 2

3 / 2

4 / 2

Индексный

4 / 4

5 / 2

5 / 4

Символьный

4 / 4

5 / 4

5 / 4

Абсолютный

4 / 4

5 / 4

5 / 4

Косвенный

3 / 2

4 / 2

4 / 2

Косв. с автоинк.

3 / 2

5 / 2

5 / 2

Непосредственный

-

4 / 4

5 / 4

Команда RETI в памяти занимает 2 байта и исполняется за 5 тактов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]