Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Попробую предсказать :-)
Это ASM
"mov dptr,#MyStr
MyStr DB "Я хоть и туп, но стараюсь умнеть",0
Для С объявление строки делается так
unsigned char code MyStr="this is a constant string";
unsigned char - аналог "DB" в ассемблере
code - обозначает сегмент кода
MyStr - аналог метки
"this is a constant string" - строка которая оканчивается нулем.
Для работы со строками обычно используют указатели.
Эта запись:
unsigned char *pStr;
обозначает, что в pStr хранится указатель на байт(unsigned char)
Для работы компилятор также может его значение загружать из оперативной памяти в DPTR и обратно выгружать в оперативку.
Для того чтобы указатель указывал на строку
"mov dptr,#MyStr" заменяем на "pStr= &MyStr;"
ну а "MOVC A, @A+DPTR" заменяем на tmp=*pStr;
* - звездочка означает, что нужна выборка из ячейки памяти на которую указывает указатель.
------------------
Если вы хотите самостоятельно побайтно выбирать строку, то вам нужно выбирать по индексу.
Например:
tmp = MyStr[index];
Составить ответ | Вернуться на конференцию
Ответы