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

 


По базе:  

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

реклама

 




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




Раздел 18

Обзор системы команд микроконтроллеров семейства MAXQ

Мнемоника Описание 16- битное слово команды Зависимые биты состояния Авт. увеличение/ уменьшение Замечания
Логические операции
AND src Acc <-- Acc AND src f001 1010 ssss ssss S, Z Y 1
OR src Acc <-- Acc OR src f010 1010 ssss ssss S, Z Y 1
XOR src Acc <-- Acc XOR src f011 1010 ssss ssss S, Z Y 1
CPL Acc <-- ~Acc 1000 1010 0001 1010 S, Z Y  
NEG Acc <-- ~Acc + 1 1000 1010 1001 1010 S, Z Y  
SLA Сдвиг Acc влево арифметически 1000 1010 0010 1010 C, S, Z Y  
SLA2 Сдвиг Acc влево арифметически дважды 1000 1010 0011 1010 C, S, Z Y  
SLA4 Сдвиг Acc влево арифметически четырехкратный 1000 1010 0110 1010 C, S, Z Y  
RL Циклический сдвиг Acc влево (минуя бит переноса C) 1000 1010 0100 1010 S Y  
RLC Циклический сдвиг Acc влево (через бит переноса C) 1000 1010 0101 1010 C, S, Z Y  
SRA Сдвиг Acc вправо арифметически 1000 1010 1111 1010 C, Z Y  
SRA2 Сдвиг Acc вправо арифметически дважды 1000 1010 1110 1010 C, Z Y  
SRA4 Сдвиг Acc вправо арифметически четырехкратный 1000 1010 1011 1010 C, Z Y  
SR Сдвиг Acc вправо (0 --> msbit) 1000 1010 1010 1010 C, S, Z Y  
RR Циклический сдвиг Acc вправо (через бит переноса C) 1000 1010 1100 1010 S Y  
RRC Циклический сдвиг Acc вправо (через бит переноса C) 1000 1010 1101 1010 C, S, Z Y  
Ком
MOVE C, Acc.<b> C <-- Acc.<b> 1110 1010 bbbb 1010 C    
MOVE C, #0 C <-- 0 1101 1010 0000 1010 C    
MOVE C, #1 C <-- 1 1101 1010 0001 1010 C    
CPL C C <-- ~C 1101 1010 0010 1010 C    
MOVE Acc.<b>, C Acc.<b> <-- C 1111 1010 bbbb 1010 S, Z    
AND Acc.<b> C <-- C AND Acc.<b> 1001 1010 bbbb 1010 C    
OR Acc.<b> C <-- C OR Acc.<b> 1010 1010 bbbb 1010 C    
XOR Acc.<b> C <-- C XOR Acc.<b> 1011 1010 bbbb 1010 C    
MOVE dst.<b>, #1 dst.<b> <-- 1 1ddd dddd 1bbb 0111 C, S, E, Z   2
MOVE dst.<b>, #0 dst.<b> <-- 0 1ddd dddd 0bbb 0111 C, S, E, Z   2
MOVE C, src.<b> C <-- src.<b> fbbb 0111 ssss ssss C    
Математические
ADD src Acc <-- Acc + src f100 1010 ssss ssss C, S, Z, OV Y 1
ADDC src Acc <-- Acc + (src + C) f110 1010 ssss ssss C, S, Z, OV Y 1
SUB src Acc <-- Acc - src f101 1010 ssss ssss C, S, Z, OV Y 1
SUBB src Acc <-- Acc - (src + C) f111 1010 ssss ssss C, S, Z, OV Y 1
Команды ветвления
{L/S} JUMP src IP <-- IP + src или src f000 1100 ssss ssss     6
{L/S}JUMP C, src Если C=1, тогда IP <-- (IP + src) или src f010 1100 ssss ssss     6
{L/S}JUMP NC, src Если C=0, тогда IP <-- (IP + src) или src f110 1100 ssss ssss     6
{L/S}JUMP Z, src Если Z=1, тогда IP <-- (IP + src) или src f001 1100 ssss ssss     6
{L/S}JUMP NZ, src Если Z=0, тогда IP <-- (IP + src) или src f101 1100 ssss ssss     6
{L/S}JUMP E, src Если E=1, тогда IP <-- (IP + src) или src 0011 1100 ssss ssss     6
{L/S}JUMP NE, src Если E=0, тогда IP <-- (IP + src) или src 0111 1100 ssss ssss     6
{L/S}JUMP S, src Если S=1, тогда IP <-- (IP + src) или src f100 1100 ssss ssss     6
{L/S}DJNZ LC[n], src Если --LC[n] <> 0, тогда IP<-- (IP + src) или src f10n 1101 ssss ssss     6
{L/S}CALL src @++SP < IP+1; IP <-- (IP+src) или src f011 1101 ssss ssss     6, 7
RET IP <-- @SP-- 1000 1100 0000 1101      
RET C Если C=1, тогда IP <-- @SP-- 1010 1100 0000 1101      
RET NC Если C=0, тогда IP <-- @SP-- 1110 1100 0000 1101      
RET Z Если Z=1, тогда IP <-- @SP-- 1001 1100 0000 1101      
RET NZ Если Z=0, тогда IP <-- @SP-- 1101 1100 0000 1101      
RET S Если S=1, тогда IP <-- @SP-- 1100 1100 0000 1101      
RETI IP <-- @SP-- ; INS< 0 1000 1100 1000 1101      
RETI C Если C=1, тогда IP <-- @SP-- ; INS< 0 1010 1100 1000 1101      
RETI NC Если C=0, тогда IP <-- @SP-- ; INS< 0 1110 1100 1000 1101      
RETI Z Если Z=1, тогда IP <-- @SP-- ; INS< 0 1001 1100 1000 1101      
RETI NZ Если Z=0, тогда IP <-- @SP-- ; INS< 0 1101 1100 1000 1101      
RETI S Если S=1, тогда IP <-- @SP-- ; INS< 0 1100 1100 1000 1101      
Пересылка данных
XCH (только для микроконтроллеров серии MAXQ20) Перестановка байтов Acc 1000 1010 1000 1010 S Y  
XCHN Перестановка полубайтов в каждом байте Acc 1000 1010 0111 1010 S Y  
MOVE dst, src dst <-- src fddd dddd ssss ssss C, S, Z, E 8 7, 8
PUSH src @++SP <-- src f000 1101 ssss ssss     7
POP dst dst <-- @SP-- 1ddd dddd 0000 1101 C, S, Z, E   7
POPI dst dst <-- @SP-- ; INS < 0 1ddd dddd 1000 1101 C, S, Z, E   7
CMP src E <-- (Acc = src) f111 1000 ssss ssss E    
NOP Пустая операция 1101 1010 0011 1010      

Примечание 1: Активный аккумулятор (Acc) не может быть источником (src) в операциях, для которых не определен явный получатель.

Примечание 2: Только модуль 8 и модули 0-5 (когда они имеются у данного конкретного микроконтроллера) поддерживаются этими одно-цикловыми командами. Если в качестве получателя указан регистр PSF, то затрагиваются биты C или E. Если в качестве получателя выступают регистры АР или АРС, то затрагиваются биты S и/или Z.

Примечание 3: Термины Acc и А[АР] могут использоваться взаимозаменяемо, чтобы обозначить активный аккумулятор.

Примечание 4: Любой индекс, представленный <b> или внутри [] рассматривается как обязательная переменная.

Примечание 5: Активный аккумулятор (Acc) не может выступать в качестве получателя, если А[АР] определен как источник.

Примечание 6: Префикс ' {L/S} ' является дополнительным.

Примечание 7: Команды, которые пытаются одновременно помещать/извлекать данные из стека (например., PUSH @SP--, PUSH @SPI--, POP @++SP, POPI @++SP) или изменяют SP противоречивым способом (например, MOVE SP, @SP--) недопустимы.

Примечание 8: Частные случаи: Если команда 'MOVE APC, Acc' устанавливает бит APC.CLR, то АР будет очищен, отменяя любую, определенную для АР, операцию автоматического увеличения/уменьшения/модулярности. Если команда 'MOVE AP, Acc' вызывает автоматическое увеличение/уменьшение/модулярность АР, то это отменяет указанную передачу данных (то есть, Acc не будет передан АР).



<-- Предыдущая страница Оглавление Следующая страница -->





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