Мне необходимо выставить значение 0xFFFE по адресу 0x80002040, я написал для этого такой код:
__asm
{
mov r0, 0xFFFE Строка 1
mov #0x80002040, r0 Строка 2
mov r0, 0xFFFE
}
Всё это делается в Eclipse для микропроцессора NT2000.
Я получаю в ответ при компиляции:
warning #1267-D: Implicit physical register R0 should be defined as a variable
error #1093: Must be a modifiable lvalue
Предупреждение приходит на строку 1, а ошибка на строку 2.
Уже заработало, необходимо было сделать так:
mov r6, #0x80002040
mov r7, #0xFFFE
str r7,[r6]
mov r6, #0x80002040
Символ "#" значит, что это 16-ричное число, проблема была в том, что нельзя было переслать напрямую в память, необходимо было из регистра в регистр, который хранит память.
Обновление
И ещё кое-что забыл: необходимо было перед вставкой кода ассемблера объявить 2 переменные типа int, r6 и r7, т.к. ассемблер не поймёт названия этих регистров без их объявления, а на самом деле проц будет использовать какие-то свои регистры, у которых название может быть любое.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости