Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 




Мероприятия:




MOVE dst, src - Перемещение данных

Описание:

Перемещение данных из определенного источника (src) в определенный получатель (dst). Ниже приведена таблица определенных источников и получателей. Также, так как src может быть 8- битными (байт) или 16- битными (слово) данными, то ниже приводятся правила, определяющие передачу данных.

Затрагиваемые флаги состояния:

S, Z (если dst является Acc, AP или APC)
C, E (если dst является PSF)

Выполнение команды:

dst <-- src

Код команды:

15 0
fddd dddd ssss ssss

Коды спецификатора источника

src бит кодирования(f ssssssss) Разрядность (16 или 8) Описание
#k 0 kkkk kkkk 8 kkkkkkkk = непосредственные данные (литерал)
MN[n] 1 nnnn 0NNN 8/16 nnnn выбирает один первых 16 регистров в модуле NNN;где NNN= от 0 до 5. Доступ ко вторым 16 регистрам осуществляется с использованием регистра PFX[n].
AP 1 0000 1000 8 Указатель аккумулятора
APC 1 0001 1000 8 Управление указателем аккумулятора
PSF 1 0100 1000 8 Регистр флагов состояния процессора
IC 1 0101 1000 8 Регистр прерываний и контроля
IMR 1 0110 1000 8 Регистр масок прерываний
SC 1 1000 1000 8 Управляющий системный регистр
IIR 1 1011 1000 8 Регистр идентификации прерываний
CKCN 1 1110 1000 8 Регистр управления синхронизацией
WDCN 1 1111 1000 8 Регистр сторожевого таймера
A[n] 1 nnnn 1001 8/16 nnnn выбирает один из 16 аккумуляторов
Acc 1 0000 1010 8/16 Активный аккумулятор = A[AP]. Обновление AP осуществляется при помощи APC
A[AP] 1 0001 1010 8/16 Активный аккумулятор = A[AP]. Не изменяет AP
IP 1 0000 1100 16 Указатель команд
@SP-- 1 0000 1101 16 16- битное слово @SP, уменьшение SP после выполнения команды
SP 1 0001 1101 16 Указатель стека
IV 1 0010 1101 16 Вектор прерываний
LC[n] 1 011n 1101 16 n выбирает 1 или 2 регистр следящего счетчика
@SPI-- 1 1000 1101 16 16- битное слово @SP, уменьшение SP после выполнения команды, INS=0
@BP[Offs] 1 0000 1110 8/16 Память данных @BP[Offs]
@BP[Offs++] 1 0001 1110 8/16 Память данных @BP[Offs]; увеличение OFFS после выполнения команды
@BP[Offs--] 1 0010 1110 8/16 Память данных @BP[Offs]; уменьшение OFFS после выполнения команды
OFFS 1 0011 1110 8 Смещение указателя кадра относительно основного указателя (BP)
DPC 1 0100 1110 16 Управляющий регистр указателя данных
GR 1 0101 1110 16 Регистр общего назначения
GRL 1 0110 1110 8 Младший байт регистра GR
BP 1 0111 1110 16 Указатель кадра основного указателя (BP)
GRS 1 1000 1110 16 Поменянные местами байты регистра GR
GRH 1 1001 1110 8 Старший байт регистра GR
GRXL 1 1010 1110 16 Младший байт регистра GR с расширением знака
FP 1 1011 1110 16 Указатель кадра (BP[Offs])
@DP[n] 1 0n00 1111 8/16 Память данных @DP[n]
@DP[n]++ 1 0n01 1111 8/16 Память данных @DP[n], увеличение DP[n] после выполнения команды
@DP[n]-- 1 0n10 1111 8/16 Память данных @DP[n], уменьшение DP[n] после выполнения команды
DP[n] 1 0n11 1111 16 n выбирает 1 из двух указателей данных

Коды спецификатора получателя

dst бит кодирования (ddd dddd) Разрядность (16 или 8) Описание
NUL 111 0110 8/16 Null (виртуальный) получатель. Предназначен для использования в качестве приемника бит, позволяющий помочь программно увеличить/уменьшить указатель.
MN[n] nnn 0NNN 8/16 nnnn выбирает один из 8 первых регистров в модуле NNN; где NNN= от 0 до 5. Доступ к следующим 24 регистрам осуществляется с использованием префиксного регистра PFX[n].
AP 000 1000 8 Указатель аккумулятора
APC 001 1000 8 Регистр управление указателем аккумулятора
PSF 100 1000 8 Регистр флагов состояния процессора
IC 101 1000 8 Регистр прерываний и управления
IMR 110 1000 8 Регистр масок прерываний
A[n] nnn 1001 8/16 nnn выбирает один из 8 первых аккумуляторов: A[0]...A[7]
Acc 000 1010 8/16 Активный аккумулятор = A[AP]
PFX[n] nnn 1011 8 nnn выбирает один из 8 префиксных регистров
@++SP 000 1101 16 16- битное слово @SP, увеличение SP перед выполнением команды
SP 001 1101 16 Указатель стека
IV 010 1101 16 Вектор прерываний
LC[n] 11n 1101 16 n выбирает один из двух регистров следящего счетчика
@BP[Offs] 000 1110 8/16 Память данных @BP[Offs]
@BP[++Offs] 001 1110 8/16 Память данных @BP[Offs]; увеличение OFFS перед выполнением команды
@BP[--Offs] 010 1110 8/16 Память данных @BP[Offs]; уменьшение OFFS перед выполнением команды
OFFS 011 1110 8 Смещение указателя кадра относительно основного указателя (BP)
DPC 100 1110 16 Управляющий регистр указателя данных
GR 101 1110 16 Регистр общего назначения
GRL 110 1110 8 Младший байт регистра GR
BP 111 1110 16 Указатель кадра основного указателя (BP)
@DP[n] n00 1111 8/16 Память данных @DP[n]
@++DP[n] n01 1111 8/16 Память данных @DP[n], увеличение DP[n] перед выполнением команды
@--DP[n] n10 1111 8/16 Память данных @DP[n], уменьшение DP[n] перед выполнением команды
DP[n] n11 1111 16 n выбирает один из двух указателей данных
2- ух цикловый доступ к получателю при помощи префиксного регистра PFX[n] (см. специальные замечания)
SC 000 1000 8 Системный управляющий регистр
CKCN 110 1000 8 Регистр управления синхронизацией
WDCN 111 1000 8 Регистр управления сторожевым таймером
A[n] nnn 1001 16 nnn выбирает один из 8 вторых аккумуляторов A[8]...A[15]
GRH 001 1110 8 Старший байт регистра GR

Правила пересылки данных:

dst (16-bit) <-- src (16-bit): dst[15:0] <-- src[15:0]
dst (8-bit) <-- src (8-bit): dst[7:0] <-- src[7:0]
dst (16-bit) <-- src (8-bit): dst[15:8] <-- 00h *
dst[7:0] <-- src[7:0]
dst (8-bit) <-- src (16-bit): dst[7:0] <-- src[7:0]

*Замечание: Для этого типа пересылки данных для определения отдельного старшего байта данных может использоваться регистр PFX[0].

Пример(ы):

MOVE A[0], A[3]      ; A[0] < A[3]
MOVE DP[0], #110h    ; DP[0] < #0110h (используется регистр PFX[0])
                     ; MOVE PFX[0], #01h (интеллектуальное префиксирование)
                     ; MOVE DP[0], #10h
MOVE DP[0], #80h     ; DP[0] < #0080h (регистр PFX[0] не нужен)

Специальное замечание: Для пересылки 16- битных данных или для 2- ух циклового доступа к получателю необходимо загрузить данные в регистр PFX [n], что автоматически выполняется ассемблером. Поэтому к исходному тексту добавляется еще одна команда. Примеры автоматического добавления кода пересылки днных в регистр PFX [n] приводятся ниже.

Входной код Выходной код, сформированный ассемблером
MOVE DP[0], #0100h MOVE PFX[0], #01h
MOVE A[15], A[7] MOVE PFX[2], anysrc
MOVE A[7], A[7]
MOVE A[8], #3040h  
MOVE PFX[2], #30h MOVE A[0], #40h





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники