Скачиваний:
28
Добавлен:
01.05.2014
Размер:
7.32 Mб
Скачать

2.3. Типы данных

Архитектура MCS-96 поддерживает несколько типов данных,что удобно в различных системах управления. Для того, чтобы избежать путаницы, имя типа операнда обозначается заглавными буквами. Например, БАЙТ(BYTE) - восьмибитовая переменная без знака, в то время как байт(byte) - восьмибитовый модуль данных любого типа.

8XC196KC использует следующие типы данных :

* БИТ (BIT)

* БАЙТ (BYTE)

* КОРОТКОЕ ЦЕЛОЕ ЧИСЛО (SHORT INTEGER)

* СЛОВО (WORD)

* ЦЕЛОЕ ЧИСЛО (INTEGER)

* ДВОЙНОЕ СЛОВО (DOUBLE-WORD)

* ДЛИННОЕ ЦЕЛОЕ (LONG-INTEGER)

БИТ(BIT) - одиноразрядный операнд, который может принимать Булевые значения - истина и ложь(TRUE&FALSE,0&1). Кроме обычной поддержки битов как компонентов BYTE и WORD операндов, 8XC196KC/KD обеспечивает средства для непосредственного тестирования любого бита во внутреннем Регистровом Файле .

MCS-96 архитектура требует чтобы биты адресовались как компоненты БАЙТОВ или СЛОВ. Она не поддерживает прямую адресацию битов которая может происходить в MCS-51 архитектуре.

Операнд БАЙТ - 8 битная переменная без знака которая может принимать значения от 0 до 255. Арифметические и реляционные операторы могут применяться к операндам

типа БАЙТ, но результат должен не превышать 256 по модулю.

Логические операции на БАЙТАХ выполняются поразрядно. Биты внутри БАЙТОВ помечены от 0 до 7; бит 0 - младший бит. Нет никаких ограничений выравнивания для БАЙТОВ, так что они могут помещаться в любом месте адресного пространства MCS-96 .

КОРОТКОЕ ЦЕЛОЕ ЧИСЛО - 8 битная, знаковая переменная, которая может принимать значения от 128 до +127. Арифметические операции, которые генерируют результаты сверх диапазона КОРОТКОГО ЦЕЛОГО ЧИСЛА устанавливают флажки переполнения в слове состояния процессора. Числовой результат - также как и результат эквивалентной операции на переменных БАЙТА(по модулю не больше 256). Нет никаких ограничений выравнивания на SHORT-INTEGERs, так что они могут помещаться в любом месте адресного пространства MCS-96.

WORD - 16 битная переменная без знака, которая может принимать значения от 0 до 65535. Арифметические операторы могут применяться к операндам СЛОВА, но результат должен интерпретироваться по модулю 65536.Логические операции на WORDs выполняются поразрядно. Биты внутри WORDs помечены от 0 до 15; бит 0 - младший бит.WORD должен выравниваться на четных границах байта в MCS-96 адресном пространстве. Младший байт WORD находится по четному адресу, старший байт находится в следующем старшем (нечетном) адресе. Адрес WORD - это адрес младшего байта( четный адрес байта ). Операции над WORD по нечетным адресам не выполняются.

ЦЕЛОЕ ЧИСЛО(INTEGER) INTEGER - 16 битная, знаковая переменная, которая может принимать значения от 32,768 до +32,767. Арифметические операции, которые генерируют результаты сверх диапазона ЦЕЛОГО ЧИСЛА, устанавливают флажки переполнения в СЛОВЕ СОСТОЯНИЯ ПРОЦЕССОРА. Числовой результат - такой же как результат эквивалентной операции на переменных типа СЛОВА. INTEGERs должен выравниваться на четных границах байта в MCS-96 адресном пространстве. Младший байт INTEGER находится по четному адресу байта, старший байт находится в следующем старшем (нечетном) адресе. Адрес INTEGER - это адрес младшего байта( четный адрес байта ). Целочисленные операции на нечетных адресах могут приводить к противоречивым ситуациям.

ДВОЙНОЕ СЛОВО - 32 битная переменная без знака, которая может принимать значения от 0 до 4,294,967,295. MCS-96 архитектура непосредственно поддерживает операнды ДВОЙНОГО СЛОВА только как операнд в операциях сдвига, как делимое в 32-на-16 операциях деления, и как результат 16-на-16 операциях умножения. Для этих операций, переменная ДВОЙНОГО СЛОВА должна постоянно находиться в Регистровом Файле и должна быть выровнена по адресу, кратному 4 . Адрес ДВОЙНОГО СЛОВА - это адрес младшего байта ( четный адрес байта ). Младшее слово ДВОЙНОГО СЛОВА - всегда в более младшем адресе, даже когда данное находится в стеке. Это означает, что сначала в стек должно помещаться старшее слово. Операции DOUBLE-WORD, которые непосредственно не выполняются, могут легко выполняться на нескольких операциях типа WORD.

ДЛИННОЕ ЦЕЛОЕ - 32 битная знаковая переменная которая может принимать значения от 2,147,483,648 до +2,147,483,647.

Остальные соглашения как для DOUBLE-WORD переменных.

Соседние файлы в папке Лабораторные работы по МПС