Поиск по сайту: |
|
По базе: |
|
Главная > Обзоры по типам > Микроконтроллеры > ARM > Система команд |
|
||||||||||||||||||||||||||
Команды регистрового обмена с сопроцессором (MRC, MCR)Эти команды будут выполнены, если условие истинно. Все различные условия их выполнения перечислены в таблице 6. Машинный код обеих команд приведен на рис.36.
Команды этого класса используются для обмена информацией непосредственно между ядром ARM7TDMI и сопроцессором. Например, команда регистровой передачи (MRC) от сопроцессора к ядру ARM7TDMI может быть использована для передачи от сопроцессора 32-битного числа с плавающей запятой (предварительно преобразованное им же в целое 32-битное) непосредственное в регистр общего назначения ARM7TDMI. 32-битное число типа FLOAT, размещенное в регистре ARM7TDMI, может быть передано непосредственно в один из регистров сопроцессора с помощью команды регистровой передачи в сопроцессор (MCR). Эти команды также очень удобны для передачи/приема управляющей информации между обоими ядрами. Например, можно непосредственно передать флаги сопроцессора в регистр CPSR ядра ARM7DTMI, тем самым управлять ветвлением программы в зависимости от результатов работы сопроцессора. Поля сопроцессора Поле CP# используется (как и в остальных командах для работы с сопроцессором) для указания номера сопроцессора, с которым будет производиться обмен. Поля CP Opc, CRn, CP и CRm используются только самим сопроцессором. Допустима интерпретация этих полей, отличная от стандартной, в зависимости от типа и возможностей сопроцессора. Стандартное назначение этих полей таково: поля CP Opc и CP определяют тип команды, которую должен выполнить сопроцессор, поле CRn - регистр сопроцессора, который может быть либо источником, либо получателем передаваемой информации, и поле CRm - второй регистр сопроцессора, который может быть использован в зависимости от типа команды сопроцессора. Передача в регистр R15 Когда содержимое регистра сопроцессора передается в регистр ARM7TDMI, в качестве которого используется R15, то биты с 31-го по 28-й передаваемого слова копируются в соответствующие флаги: N, Z, C и V ядра ARM7TDMI. При этом остальные биты этого слова никуда не записываются, регистр при этом PC не подвергается изменениям, а остальные биты регистра CPSR также остаются без изменений. Передача из регистра R15 В этом случае реально будет передано в сопроцессор содержимое регистра PC плюс 12 ядра ARM7TDMI. Число машинных тактов Команда MRC выполняется за 1S + (b+1)I + 1C, где b - число машинных тактов, необходимых для выполнения пустых тактов сопроцессора, а S, I и C зависят от типа машинных тактов. Команда MRC выполняется за 1S + bI + 1C, где b - число машинных тактов, необходимых для выполнения пустых тактов сопроцессора, а S, I и C зависят от типа машинных тактов. Синтаксис в ассемблере <MCR|MRC>{cond} p#,<expression1>,Rd,cn,cm{,<expression2>} где:
Примеры
<---- Вернуться к Системе команд ---> Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|