Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Типы памяти. Транслятор Cx51 явно поддерживает архитектуру контроллеров с ядром МК51 и обеспечивает доступ ко всем областям памяти




 

Транслятор Cx51 явно поддерживает архитектуру контроллеров с ядром МК51 и обеспечивает доступ ко всем областям памяти. Любая переменная может быть явно определена в своей области памяти.

Доступ к внутренней памяти быстрее доступа к внешней памяти. Поэтому часто используемые переменные выгоднее размещать во внутренней памяти, а редко используемые – во внешней.

Явно декларируемые типы памяти

 

Если спецификатор типа памяти включен в ее декларацию, вы задаете явно, где хранится данная переменная. В табл. 1 представлены все спецификаторы памяти.

Таблица 1

Тип памяти Описание
code Память программ (64 КБайт); доступ командой MOVC @A+DPTR
data Прямоадресуемая внутренняя память; быстрый доступ (128 байтов)
idata Косвенноадресуемая внутренняя память; доступ ко всем 256 байтам
bdata Внутренняя память с битовой адресацией; доступ к битам и байтам (16 бит)
xdata Внешняя память данных (64 КБайта); доступ командой MOVX @DPTR
pdata Внешняя память данных (256 байт); доступ командой MOVX @Rn.

 

Спецификатор типа памяти включается в описание переменной также, как и атрибуты signedи unsigned.

Пример

char data var1; char code text[] = "ENTER PARAMETER:"; unsigned long xdata array[100]; float idata x,y,z; unsigned int pdata dimension; unsigned char xdata vector[10][4][4]; char bdata flags;

Для совместимости с предыдущими версиями транслятора тип памяти можно записывать перед типом переменной.

Data char xэквивалентно char data x.

Неявные типы памяти

 

Если спецификатор типа памяти не включен в декларирование переменной, автоматически включается неявный тип памяти или тип памяти по умолчанию. Аргументы функций и автоматически назначаемые переменные, которые не могут быть размещены в регистрах, сохраняются в назначенной по умолчанию памяти. Память по умолчанию при этом определяется директивами транслятора SMALL, COMPACTиLARGE.

Типы данных

 

Транслятор языка C обеспечивает работу с целым рядом базовых типов данных. Они включают в себя как стандартные типы языка C, так и типы, специфические для контроллеров серии МК51. В табл. 2 содержатся все доступные в C51 типы данных.

Таблица 2

Тип даных Битов Байтов Диапазон значенийи
bit *   0 до 1
signed char -128 до +127
unsigned char 0 до 255
enum 8 / 16 1 or 2 128 до +127 или -32768 до +32767
signed short -32768 до +32767
unsigned short 0 до 65535
signed int -32768 до +32767
unsigned int 0 до 65535
signed long -2147483648 до 2147483647
unsigned long 0 до 4294967295
float ±1.175494E-38 до ±3.402823E+38
sbit *   0 до 1
sfr * 0 до 255
sfr16 * 0 до 65535

* Типы bit, sbit, sfr и sfr16не предусмотрены в стандарте ANSI C и являются особенностью Cx51.


Поделиться:

Дата добавления: 2015-04-05; просмотров: 72; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты