224
sfr16 – 16 разрядов, sfr32 – 32 разряда) и их битов (sbit). Эти
ключевые слова используются для создания заголовочных файлов,
позволяющих обращаться к регистрам специального назначения
по именам.
Обращение к внутренней памяти данных происходит гораздо быстрее, чем
к внешней. Поэтому переменные, которые используются чаще других, следует
размещать во внутренней памяти, а остальные – во внешней. Далее приведены
примеры объявления переменных в разных классах памяти:
__data unsigned char test_data;
__xdata unsigned char test_xdata;
__idata unsigned char test_idata;
__pdata unsigned char test_pdata;
__code unsigned char test_code;
__bit test_bit;
__sfr __at (0x80) P0; // регистр специального назначения P0 по адресу 0x80
/* 16-разрядный регистр специального назначения для Таймера 0
Старший байт значения находится по адресу 0x8C, младший по адресу 0x8A*/
__sfr16 __at (0x8C8A) TMR0;
__sbit __at ( 0xD7 ) CY; /* CY (Carry Flag, флаг переноса в SFR PSW) */
Если в объявлении переменной модификатор памяти не указан, выбирается
модель памяти, установленная по умолчанию. Аргументы функции и
переменные класса памяти auto, которые не могут быть размещены в регистрах,
также хранятся в области памяти, установленной по умолчанию.
Модель памяти, выбираемая в качестве модели по умолчанию,
устанавливается с помощью опций компилятора small, medium и large.
Достарыңызбен бөлісу: