<<
>>

Методы работы со структурами

Смысл введения структурного типа данных в любой язык программирования со- стоит в объединении разнотипных переменных в один объект. В языке должны быть средства доступа к этим переменным внутри конкретного экземпляра струк- туры.
Для того чтобы сослаться в команде на поле некоторой структуры, исполь- зуется специальный оператор. (точка): адресное_выражение.имя_поля_структуры Здесь: я адресное_выражение — идентификатор переменной некоторого структурного типа или выражение в скобках в соответствии с указанными ранее синтакси- ческими правилами (рис. 13.1); * имя_поля_структуры — имя поля из шаблона структуры (это на самом деле тоже адрес, а точнее, смещение поля от начала структуры). Таким образом, оператор. (точка) вычисляет выражение (адресное_выражение) + + (имя_поля_структуры).
Рис. 13.1. Синтаксис адресного выражения в операторе обращения к полю структуры

Продемонстрируем с помощью определенной нами структуры worker некото- рые приемы работы со структурами.

К примеру, требуется извлечь в регистр АХ значения поля с возрастом. Так как вряд ли возраст трудоспособного человека может быть больше 99 лет, то после помещения содержимого этого символьного поля в регистр АХ его будет удобно преобразовать в двоичное представление ко- мандой AAD (см. главу 8). Будьте внимательны, так как из-за принципа хранения данных «младший байт по младшему адресу» старшая цифра возраста будет поме- щепа в АL, а младшая — в АН. Для корректировки достаточно использовать коман- ду хсhg аl,аh: mov ах,word рtr sоtrl.аgе ;в аl возраст sоtrl хсhg аh,аl ;а можно и так: lеа bх,sоtrl mov ах,word рtr [bх].аgе хсhg аh,аl Давайте представим, что сотрудников не четверо, а намного больше, и к тому же их число и информация о них постоянно меняются.
В этом случае теряется смысл явного определения переменных с типом worker для конкретных личностей. Ассемблер разрешает определять не только отдельную переменную с типом струк- туры, но и массив структур. К примеру, определим массив из 10 структур типа worker: mаs_sоtr worker 10 dup () Дальнейшая работа с массивом структур производится так же, как и с одномер- ным массивом. Здесь возникает несколько вопросов. Как быть с размером и как организовать индексацию элементов массива? Аналогично другим идентификаторам, определенным в программе, транслятор назначает имени типа структуры и имени переменной с типом структуры атрибут типа. Значением этого атрибута является размер в байтах, занимаемый полями структуры. Извлечь это значение можно с помощью оператора TYPE. После того как становится известным размер экземпляра структуры, организация индекса- ции в массиве структур не представляет особой сложности. К примеру, worker struc

mоv di,(tуре wоrkеr)*4 ;si=77*4 add di, bх mоv сх, 30 rер mоvsb Среди прилагаемых к книге файлов в каталоге ..\LеssопlЗ\struсt\приведена программа обслуживания базы данных о сотрудниках[11]. На ее примере вы можете глубже познакомиться с тем, как организовать работу со структурами в своей про- грамме. Возможно, для читателя имеет смысл в полном объеме исследовать эту программу только после знакомства с макрокомандами в следующей главе. Ремесло программиста рано или поздно делает человека похожим на хорошую домохозяйку. Он, подобно ей, постоянно находится в поиске: где бы чего-нибудь сэкономить, урезать, из минимума продуктов сделать прекрасный обед. И если это удается, то и моральное удовлетворение получается ничуть не меньше, а может, и больше, чем от прекрасного обеда у домохозяйки. Степень этого удовлетворе- ния, как мне кажется, зависит от степени любви к своей профессии. С другой сто- роны, успехи в разработке программного и аппаратного обеспечения несколько расслабляют программиста, и довольно часто наблюдается ситуация, когда для решения некоторой мелкой задачи привлекаются тяжеловесные средства, эффек- тивность которых в общем случае значима только при реализации сравнительно больших проектов. В следующих двух разделах описаны два типа данных, наличие которых в язы- ке помогает более эффективно распоряжаться памятью, выделенной программе.

<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Методы работы со структурами:

  1. 13.1. Понятие, содержание, структура допроса (опроса) по методу когнитивного интервью
  2. Методы работы социального педагога
  3. Методы работы с личностью в организации.
  4. Методы работы социального педагога с семьей
  5. § 2. МЕТОДЫ ПОДБОРА И РАБОТЫ ЭКСПЕРТОВ
  6. Совершенствование стиля и методов работы руководителя органа правопорядка с персоналом.
  7. ПОНЯТИЕ О МЕТОДАХ ОБУЧЕНИЯ. МЕТОД И ПРИЕМ. ОСНОВНЫЕ ПОДХОДЫ К КЛАССИФИКАЦИИ МЕТОДОВ ОБУЧЕНИЯ
  8. Ключ мог родиться только в России. Ключ к себе — ключ к системам. (это не метод среди методов, а Ключ к собственному методу)
  9. 2. Сравнительно-правовой метод – частнонаучный метод юридической науки
  10. Метод та принципи цивільно-правового регулювання. Методом