Описание |
Ассемблерная мнемоника |
Обновление флаго! |
Действие |
Групповая загрузка пользовательских регистров |
LDM{cond}<a_mode4L> Rd{I}, <гедНзг;-рс>Л |
Загрузка списка регистров используемого режима с указателем [Rn]3> |
|
Команды сохранения в памяти |
|||
Сохранение слова |
STM{cond} Rd, <a_mode2> |
[адрес] := Rd |
|
Сохранение слова в привилегированны х пользовательских режимах |
STM{cond}T Rd, <a_mode2P> |
[адрес]:= Rd |
|
Сохранение байта |
STM{cond}B Rd, <a_mode2> |
[адрес] [7:0]:= Rd[7:0] |
|
Сохранение байта в привилегированны х пользовательских режимах |
STM{cond}BT Rd, <a_mode2P> |
[адрес][7:0]:= Rd[7:0] |
|
Сохранение полуслова |
STM{cond}H Rd, <a_mode3> |
[адрес][15:0].= Rd[15:0] |
|
Групповое сохранение в операции со стеком (PUSH) |
STM{cond}<a_mode4S> Rn{!}, <reglist> |
Сохранение списка регистров с указателем [Rn] |
|
Групповое сохранение пользовательских регистров |
STM{cond}<a_mode4S> Rn{!}, |
Сохранение списка регистров используемого режима с указателем [Rn]3) |
|
Команды обмена |
|||
Обмен словами |
SWP{cond} Rd, Rm, [Rn] |
temp:= [Rn], [Rn]:= Rm, Rd:= temp |
|
Обмен байтами |
SWP{cond}B Rd, Rm, [Rn] |
temp:= нулевое заполнение (Rn [7:0]), Rn[7:0]:= Rm[7:0], Rd:= temp |
|
Команды сопроцессора |
|||
Операции с данными (выполнение команды сопроцессором) |
CDP{cond} <cpnum>, <opl>, CRd, CRn, CRm, <op2> |
Сопроцессор определен |
|
Пересылка из регистров ARM в регистры сопроцессора |
MRC(cond) <cpnum>, <opl>, Rd, CRn, CRm, <op2> |
Сопроцессор определен |
|
Пересылка из регистров сопроцессора в регистры ARM |
MCR{cond} <cpnum>, <opl>, Rd, CRn, CRm, <op2> |
Сопроцессор определен |
|
Загрузка данных в сопроцессор из памяти |
LDC{cond} <cpnum>, CRd, <a_mode5> |
Сопроцессор определен |
|
Сохранение регистров сопроцессора в памяти |
STC{cond} <cpnum>, CRd, <a_mode5> |
Сопроцессор определен |
|
Программное прерывание |
SWKcond} <24bit_Imm> |
Переход в режим Supervisor, LR:= PC, РС:= 0x0008 (24-битное значение содержится в коде команды) |
|
Метка label должна находиться в пределах +32 Мбайт от текущей команды. 2) В качестве Rd нельзя указывать R15. 3) Используется только в привилегированных режимах. |
Режим адресации, обозначенный при описании форматов и ассемблерных мнемоник команд процессора ARM7TDMI-S как <a_mode2>, описан в Табл. 1.8.
Режим адресации, обозначенный при описании форматов и ассемблерных мнемоник команд процессора ARM7TDMI-S как <a_mode2P>, описан в Табл. 1.9.
Таблица 1.8. Режим адресации 2 (<a_modeZ>), используемый в командах перемещения слов или байтов без знака
Операция |
Ассемблерная мнемоника |
Примечание |
Преиндексное непосредственное смещение |
[Rn, #+/-12bit_Imm] {!} |
|
Преиндексное нулевое смещение |
[Rn] |
Эквивалентно [Rn, #0] |
Преиндексное регистровое смещение |
[Rn, +/-Rm] {!} |
|
Преиндексное масштабированное регистровое смещение |
[Rn, #+/-Rm, LSL #5bit_lmm] {!} |
Допустимые сдвиги 0...31 |
[Rn, #+/-Rm, LSR #5bit_lmm] (!) |
Допустимые сдвиги 1...32 |
|
[Rn, #+/-Rm, ASR #5bit_Imm] {!} |
Допустимые сдвиги 1...32 |
|
[Rn, #+/-Rm, ROR #5bit_lmm] (!) |
Допустимые сдвиги 1...31 |
|
[Rn, #+/-Rm, RRX] {!} |
||
Постиндексное непосредственное смещение |
[Rn], #+/-12bit_Imm |
|
Постиндексное регистровое смещение |
[Rn], #+/-Rm |
|
Постиндексное масштабированное регистровое смещение |
[Rn], #+/-Rm, LSL #5bit_Imm |
Допустимые сдвиги 0...31 |
[Rn], #+/-Rm, LSR #5bit_Imm |
Допустимые сдвиги 1...32 |
|
[Rn], #+/-Rm, ASR #5bit_Imm |
Допустимые сдвиги 1...32 |
|
[Rn], #+/-Rm, ROR #5bit_Imm |
Допустимые сдвиги 1...31 |
|
[Rn], #+/-Rm, RRX |
||
Таблица 1.9. Режим адресации 2 (<a_mode2P>), используемый в привилегированных пользовательских режимах только с постиндексным смещением |
||
Операция |
Ассемблерная мнемоника |
Примечание |
Постиндексное непосредственное смещение |
[Rn], #+/-12bit_Imm |
|
Постиндексное нулевое смещение |
[Rn] |
Эквивалентно [Rn], #0 |
Постиндексное регистровое смещение |
[Rn], #+/-Rm |
|
Постиндексное масштабированное регистровое смещение |
[Rn], #+/-Rm, LSL #5bit_Imm |
Допустимые сдвиги 0...31 |
[Rn], #+/-Rm, LSR #5bit_Imm |
Допустимые сдвиги 1...32 |
|
[Rn], #+/-Rm, ASR #5bit_Imm |
Допустимые сдвиги 1...32 |
|
[Rn], #+/-Rm, ROR #5bit_Imm |
Допустимые сдвиги 1...31 |
|
[Rn], #+/-Rm, RRX |
Таблица 1.10. Режим адресации 3 (<a_mode3>) для команд перемещения полуслов и байтов со знаком
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |