Предыдущая Следующая

Таблица 1.7. Список команд ARM

Описание

Ассемблерная мнемоника

Обновление флагов

Действие

Команды пересылки

Пересылка

MOV{cond)S Rd, <0prnd2>

N, Z,C

Rd:= Oprnd2

Пересылка с побитной инверсией (NOT)

MVN{cond}S Rd, <0prnd2>

N, Z,C

Rd:= OxFFFFFFFF EOR <Oprnd2>

Пересылка SPSR в регистр

MRS{cond} Rd, SPSR

 

Rd:= SPSR

Пересылка CPSR в регистр

MRS(cond) Rd, CPSR

 

Rd:= CPSR

Пересылка из регистра в SPSR

MSR{cond} SPSR{field}, Rm

 

SPSR:= Rm

Пересылка из регистра в CPSR

MSR{cond) CPSR{field}, Rm

 

CPSR:= Rm

Пересылка непосредственного значения во флаги SPSR

MSR(cond) SPSR{field},#32bit_Imm

 

SPSR:= #32bit_Imm (только выбранные байты)

Пересылка непосредственного значения во флаги CPSR

MSR{cond} CPSR{field},#32bit_Imm

 

CPSR:= #32bit_Imm (только выбранные байты)

Арифметические команды

Сложение

ADD(cond)S Rd, Rn <0prnd2>

N, Z, C,V

Rd:= Rn + Oprnd2

Сложение с учетом переноса

ADC{cond}S Rd, Rn <0prnd2>

N, Z, С, V

Rd.= Rn + Opmd2 + Cany

Вычитание

SUB{cond}S Rd, Rn <0prnd2>

N, Z, С, V

Rd:= Rn - Oprnd2

Вычитание с учетом заема

SBC{cond)S Rd, Rn <0prnd2>

N,Z, C,V

Rd:= Rn + Oprnd2 -- NOT(Cany)

Обратное вычитание

RSB{cond}S Rd, Rn <0prnd2>

N, Z, C,V

Rd:= Oprnd2 - Rn

Обратное вычитание с учетом заема

RSC{cond}S Rd, Rn <0prnd2>

N,Z,C,V

Rd:= Oprnd2 - Rn --NOT(Carry)

Короткое умножение

MUL{cond}S Rd, Rm, Rs

N, Z,C

Rd:= (RmxRs)[31:0]

Короткое умножение с накоплением

MLA{cond}S Rd, Rm, Rs, Rn

N, Z, C,

Rd:=((RmxRs) + Rn)[31:0]

Длинное умножение беззнаковых чисел

UMULL{cond}S RdLo, RdHi, Rm, Rs

N, Z, С, V

RdHi,

RdLo:= беззнаковое (Rm x Rs)

Длинное умножение беззнаковых чисел с накоплением

UMLAL{cond}S RdLo, RdHi, Rm, Rs

N, Z, С, V

RdHi, RdLo:= беззнаковое (RdHi, RdLo + Rm x Rs)

Длинное умножение чисел со знаком

SMULL{cond}S RdLo, RdHi, Rm, Rs

N,Z, C,V

RdHi, RdLo:= знаковое (Rm x Rs)

Длинное умножение чисел со знаком с накоплением

SMLAL{cond}S RdLo, RdHi, Rm, Rs

N, Z, C,V

RdHi, RdLo:= знаковое (RdHi, RdLo + Rm x Rs)

Сравнение

CMP{cond) Rd, <Oprnd2>

N, Z, С, V

Обновление флагов CPSR по результатам операции Rn - Opmd2

Сравнение с отрицательным числом

CMN{cond} Rd, <0prnd2>

N, Z, C,V

Обновление флагов CPSR по результатам операции Rn + Oprnd2

Таблица 1.7. Список команд ARM (продолжение)

Описание

Ассемблерная мнемоника

Обновление флагов

Действие

Логичекие команды

Тестирование битов

TST{cond} Rd, <0prnd2>

N,Z,C

Обновление флагов CPSR по результатам операции RnANDOprnd2

Побитное сравнение

TEQ{cond} Rd, <0prnd2>

N,Z,C

Обновление флагов CPSR по результатам операции Rn EOR Oprnd2

Логическое И

AND{cond}S Rd, Rn <0prnd2>

N,Z,C

Rd:= Rn AND Oprnd2

Исключающее ИЛИ

EOR{cond}S Rd, Rn <0prnd2>

N, Z,C

Rd:= Rn EOR Oprnd2

Логическое ИЛИ

ORR{cond}S Rd, Rn <0prnd2>

N, Z,C

Rd:= Rn OR Oprnd2

Очистка битов (маскирование)

BIC{cond}S Rd, Rn <0prnd2>

N, Z,C

Rd:= Rn AND NOT Oprnd2

Пустая операция

NOP

 

Нет операции

Команды передачи управления

Переход

B{cond} label

 

R15:= label1'

Переход с сохранением адреса возврата BR14

BL{cond} label

 

R14:=R15-4, R15:= label1*

Переход с возможностью смены состояния

BX{cond} Rm

 

R15:= Rm, переход в THUMB, если Rm[0] = 1

Команды загрузки из памяти

Загрузка слова

LDR{cond} Rd, <a_mode2>

 

Rd:= [адрес]2)

Загрузка слова в привилегированных пользовательских режимах

LDR{cond}T Rd, <a_mode2P>

 

Rd:= [адрес]2'

Загрузка байта

LDR{cond}B Rd, <a_mode2>

 

Rd:= нулевое дополнение [байт из адреса]2)

Загрузка байта в привилегированных пользовательских режимах

LDR{cond}BT Rd, <a_mode2P>

 

Rd:= нулевое дополнение [байт из адреса]2)

Загрузка байта со знаком

LDR{cond}SB Rd, <a_mode3>

 

Rd:= знаковое дополнение [байт из адреса]2)

Загрузка полуслова

LDR{cond}H Rd, <a_mode3>

 

Rd:= нулевое дополнение [полуслово из адреса]2'

Загрузка полуслова со знаком

LDR{cond}SH Rd, <a_mode3>

 

Rd:= знаковое дополнение [полуслово из адреса]

Групповая загрузка в операции со стеком (POP)

LDM{cond}<a_mode4L> Rd{!}, <reglist-pc>

 

Загрузка списка регистров с указателем [Rn]

Групповая загрузка в операции со стеком (POP) с возвратом

(и обменом)

LDM{cond}<a_mode4L> Rd{!}, <reglist+pc>

 

Загрузка списка регистров, R15:= [адрес][31:1]

Групповая загрузка в операции со стеком (POP) и сохранением CPSR

LDM{cond}<a_mode4L> Rd{!}, <reglist+pc>A

 

Загрузка списка регистров,

CPSR:= SPSR

Таблица 1.7. Список команд ARM (продолжение)


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz