Дипломированных специалистов «Информатика и вычислительная техника»



Download 12,06 Mb.
Pdf ko'rish
bet161/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   157   158   159   160   161   162   163   164   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Методы работы со структурами
Смысл введения структурного типа данных в любой язык программирования со-
стоит в объединении разнотипных переменных в один объект. В языке должны
быть средства доступа к этим переменным внутри конкретного экземпляра струк-
туры. Для того чтобы сослаться в команде на поле некоторой структуры, исполь-
зуется специальный
(точка):
Здесь:
я
— идентификатор
некоторого
типа или выражение в скобках в соответствии с указанными
синтакси-
ческими правилами (рис. 13.1);
*
— имя поля из шаблона структуры (это на самом деле тоже
адрес, а точнее, смещение поля от начала структуры).
Таким образом,
(точка) вычисляет выражение
+
+
Константа
Константа
Рис.
Синтаксис адресного выражения в операторе обращения к полю структуры
Продемонстрируем с помощью определенной нами структуры worker некото-
рые приемы работы со структурами. К примеру, требуется извлечь в регистр АХ
значения поля с возрастом. Так как вряд ли возраст трудоспособного человека
может быть больше 99 лет, то после помещения содержимого этого символьного
поля в регистр АХ его будет удобно преобразовать в двоичное
ко-
мандой AAD (см. главу 8). Будьте внимательны, так как из-за принципа хранения
данных «младший байт по младшему адресу» старшая цифра возраста будет


Структуры 283
в AL, а младшая — в АН. Для корректировки достаточно использовать коман-
ду xchg
ptr

возраст
xchg
можно и так:
lea
mov
ptr
xchg
Давайте представим, что сотрудников не четверо, а намного больше, и к тому
же их число и информация о них постоянно меняются. В этом случае теряется
смысл явного определения переменных с типом worker для конкретных личностей.
Ассемблер разрешает определять не только отдельную переменную с типом струк-
туры, но и массив структур. К примеру, определим массив из 10 структур типа
worker:
worker 10 dup (<>)
Дальнейшая работа с массивом структур производится
же, как и с одномер-
ным массивом. Здесь возникает несколько вопросов. Как быть с размером и как
организовать индексацию элементов массива?
Аналогично другим идентификаторам, определенным в программе, транслятор
назначает имени типа структуры и имени переменной с типом структуры атрибут
типа. Значением этого атрибута является размер в байтах, занимаемый полями
структуры. Извлечь это значение можно с помощью оператора TYPE. После того
как становится известным размер экземпляра структуры, организация индекса-
ции в массиве структур не представляет особой сложности. К примеру,
w o r k e r s t r u c
worker ends
worker 10 dup (<>)
mov
worker ;bx=77
lea
и вывести на экран пол всех сотрудников:
mov
mov
на экран содержимого
sex структуры worker
add
следующей структуре в массиве
loop cycl
Как выполнить копирование поля из одной структуры в соответствующее поле
другой структуры? Или как выполнить копирование всей структуры? К примеру,
выполним копирование поля пат третьего сотрудника в поле пат пятого сотруд-
ника:
worker struc
worker ends
worker 10 dup (<>)
mov
mov
worker)*2
add


284 Глава 13. Сложные структуры данных
;si=77*4
add
mov
rep
Среди прилагаемых к книге файлов в каталоге
приведена
программа обслуживания базы данных о
На ее примере вы можете
глубже познакомиться с тем, как организовать работу со структурами в своей про-
грамме. Возможно, для читателя имеет смысл в полном объеме исследовать эту
программу только после знакомства с макрокомандами в следующей главе.
Ремесло программиста рано или поздно делает человека похожим на хорошую
домохозяйку. Он, подобно ей, постоянно находится в поиске: где бы чего-нибудь
сэкономить, урезать, из минимума продуктов сделать прекрасный обед. И если это
удается, то и моральное удовлетворение получается ничуть не меньше, а может,
и больше, чем от прекрасного обеда у домохозяйки. Степень этого удовлетворе-
ния, как мне кажется, зависит от степени любви к своей профессии. С другой сто-
роны, успехи в разработке программного и аппаратного обеспечения несколько
расслабляют программиста, и довольно часто наблюдается ситуация, когда для
решения некоторой мелкой задачи привлекаются тяжеловесные средства, эффек-
тивность которых в общем случае значима только при реализации сравнительно
больших проектов.
В следующих двух разделах описаны два типа данных, наличие которых в язы-
ке помогает более эффективно распоряжаться памятью, выделенной программе.

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   157   158   159   160   161   162   163   164   ...   357




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish