Методы работы со структурами
Рис. 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]. На ее примере вы можете глубже познакомиться с тем, как организовать работу со структурами в своей про- грамме. Возможно, для читателя имеет смысл в полном объеме исследовать эту программу только после знакомства с макрокомандами в следующей главе. Ремесло программиста рано или поздно делает человека похожим на хорошую домохозяйку. Он, подобно ей, постоянно находится в поиске: где бы чего-нибудь сэкономить, урезать, из минимума продуктов сделать прекрасный обед. И если это удается, то и моральное удовлетворение получается ничуть не меньше, а может, и больше, чем от прекрасного обеда у домохозяйки. Степень этого удовлетворе- ния, как мне кажется, зависит от степени любви к своей профессии. С другой сто- роны, успехи в разработке программного и аппаратного обеспечения несколько расслабляют программиста, и довольно часто наблюдается ситуация, когда для решения некоторой мелкой задачи привлекаются тяжеловесные средства, эффек- тивность которых в общем случае значима только при реализации сравнительно больших проектов. В следующих двух разделах описаны два типа данных, наличие которых в язы- ке помогает более эффективно распоряжаться памятью, выделенной программе.
Еще по теме Методы работы со структурами:
- 13.1. Понятие, содержание, структура допроса (опроса) по методу когнитивного интервью
- Методы работы социального педагога
- Методы работы с личностью в организации.
- Методы работы социального педагога с семьей
- § 2. МЕТОДЫ ПОДБОРА И РАБОТЫ ЭКСПЕРТОВ
- Совершенствование стиля и методов работы руководителя органа правопорядка с персоналом.
- ПОНЯТИЕ О МЕТОДАХ ОБУЧЕНИЯ. МЕТОД И ПРИЕМ. ОСНОВНЫЕ ПОДХОДЫ К КЛАССИФИКАЦИИ МЕТОДОВ ОБУЧЕНИЯ
- Ключ мог родиться только в России. Ключ к себе — ключ к системам. (это не метод среди методов, а Ключ к собственному методу)
- 2. Сравнительно-правовой метод – частнонаучный метод юридической науки
- Метод та принципи цивільно-правового регулювання. Методом