русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Работа с записями


Дата добавления: 2013-12-23; просмотров: 681; Нарушение авторских прав


...

Iotest record

...

Определение экземпляра записи

Рис. 2. Синтаксис описания шаблона записи

Описание записи

Организация обращения к элементам записи.

Запись — структурный тип данных, состоящий из фиксированного числа элементов длиной от одного до нескольких бит.

Записи

 

Суммарный размер записи определяется суммой размеров ее полей и не может быть более 8, 16 или 32 бит. Если суммарный размер записи меньше указанных значений, то все поля записи «прижимаются» к младшим разрядам.

Использование записей в программе организуется в три этапа:

1. Задание шаблона записи,то есть определение набора битовых полей, их длин и, при необходимости, инициализация полей.

2. Определение экземпляра записи.Так же как и для структур, этот этап подразумевает инициализацию конкретной переменной типом заранее определенной с помощью шаблона записи.

Описание шаблона записи имеет следующий синтаксис:

имя_записи RECORD <описание элементов>

 

Здесь:

<описание эленентов> представляет собой последовательность описаний отдельных элементов записи согласно синтаксической диаграмме (рис. 2).

При описании шаблона память не выделяется, так как это информация для транслятора ассемблера о структуре записи. Так же как и для структур, местоположение шаблона в программе может быть любым, но при этом необходимо учитывать логику работы однопроходного транслятора.


Для использования шаблона записи в программе необходимо определить переменную с типом данной записи, для чего применяется следующая синтаксическая конструкция (рис. 10.3).

 

Рис. 10.3. Синтаксис описания экземпляра записи

 

Рассмотрим несколько вариантов инициализации.



Пример: Если инициализировать поля не требуется, то достаточно указать ? при определении экземпляра записи:

i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00 ; 8 бит

flag iotest ? ;все поля записи после выполнения данной

; инициализации обнуляются

 


Пример_1: согласиться со значениями по умолчанию можно так:

 

iotest record i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00; _11_1100

...

flag iotest<> ;согласились со значением по умолчанию

 

Пример_2: Изменить значение поля i2 можно так:

 

iotest record i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00

...

flag iotest<,10,,,> ; переопределили i2

 

Пример_3: Переопределим поле i2:

 

iotest record i1:1,i2:2=11,i3:1,i4:2=11,i5:2=00

...

flag iotest{i2=10} ;переопределили i2, не обращая внимания

; на порядок следования других

; компонентов записи

 


При работе с записями:

– Каждому имени элемента записи ассемблер присваивает числовое значение, равное количеству сдвигов вправо, которые нужно произвести для того, чтобы этот элемент оказался «прижатым» к началу ячейки. Это дает возможность локализовать его и работать с ним. Но для этого нужно знать длину элемента в битах.

– Ассемблер содержит оператор width, который позволяет узнать размер элемента записи в битах или полностью размер записи. Варианты применения оператора width:

– Сдвиг вправо производится с помощью команды сдвига shr.

 

А) width имя_элемента_записи — значением оператора будет размер элемента в битах;

Б) width имя_экземпляра_записи или width имя_типа_записи — значением оператора будет размер всей записи в битах.

 



<== предыдущая лекция | следующая лекция ==>
Бита, то есть двойное слово. | M С помощью команды or наложить значение в регистре на исходную запись.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.008 сек.