[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
"компилятор всякий раз заново перегружает адрес в регистр DPTR - и никогда не использует инструкцию INC DPTR" - Ваша фраза?
Так вот кейл ещё версии 5.5 инкрементировал DPTR в таком примере
#define XBYTE ((unsigned char volatile xdata*)0)
#define __PORT0 XBYTE[0x0000]
#define __PORT1 XBYTE[0x0001]
__PORT0=x;
__PORT1=y;
Надеюсь,наглядно?
За что и был применяем.
Кстати, что по Вашему на 51-х быстрее (и насколько):
for(unsigned int a=x;a;a--);
или
for(unsigned char a0=x>>8;a0;a0--)
for(unsigned char a1=x&0xff;a1;a1--);
Посмотрите как тот-же кейл оптимизирует. Так что архитектуру знать надобно.
Удачи.
А о чём спорим-то? Нужен асм или нет? :))
E-mail: info@telesys.ru