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



Download 12,06 Mb.
Pdf ko'rish
bet143/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   139   140   141   142   143   144   145   146   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Глава
Цепочечные команды
Средства процессора для обработки цепочек элементов
в памяти
Операции пересылки и сравнения цепочек
Операции для работы с отдельными элементами цепочек
Операции для работы с портами ввода-вывода
В данной главе будет рассмотрена чрезвычайно интересная группа команд, пони-
мание принципов работы которых и их грамотное использование способны значи-
тельно облегчить жизнь программисту, пишущему программы на языке ассембле-
ра. Речь идет о так называемых цепочечных командах, которые иногда называют
командами обработки строк символов. Однако эти названия не идентичны. Под
строкой символов здесь понимается последовательность байтов, а цепочка — это
более общее название для случаев, когда размер элемента последовательности пре-
вышает байт и составляет слово или двойное слово. Таким образом, цепочечные
команды позволяют проводить действия над блоками памяти, представляющими
собой последовательности элементов следующего размера:
8 битов, то есть байт;
16 битов, то есть слово;
' 32 бита, то есть двойное слово.
Содержимое этих блоков для процессора не имеет никакого значения. Это мо-
гут быть символы, числа и все что угодно. Главное, чтобы размеры элементов соот-
ветствовали одному из перечисленных ранее вариантов и эти элементы находи-
лись в соседних ячейках памяти.
Всего в системе команд процессора поддерживаются семь операций-примити-
вов обработки цепочек. Каждая из них реализуется в процессоре тремя командами,


250 Глава
Цепочечные команды
в свою очередь, каждая из этих команд работает с соответствующим размером эле-
мента — байтом, словом или двойным словом. Особенность всех цепочечных ко-
манд в том, что они, кроме обработки текущего элемента цепочки, корректируют
содержимое определенных регистров с тем, чтобы автоматически продвинуться к
следующему элементу цепочки.
Перечислим операции-примитивы обработки цепочек и реализующие их ко-
манды ассемблера.
Пересылка цепочки:
D MOVS
D
D
ж Сравнение цепочек:
П
CMPSB;
D
а CMPSD.
ж Сканирование цепочки:
D SCAS
D SCASB;
D SCASW;
D SCASD.
ж Загрузка элемента из цепочки:
П LODS адрес_источника;
П LODSW;
П
Сохранение элемента в цепочке:
П STOS
П
П
П
Получение элементов цепочки из порта ввода-вывода:
П INS
П INSB;
П INSW;
П INSD.
Вывод элементов цепочки в порт ввода-вывода:
П OUTS


251
OUTBS;
OUTWS;
Логически к этим командам нужно отнести и так называемые префиксы повто-
рения. Вспомните формат машинной команды и его первые необязательные байты
префиксов. Один из возможных типов префиксов — это префиксы повторения.
Они предназначены для использования цепочечными командами. Префиксы по-
вторения имеют свои мнемонические обозначения:
REP;
- REPE, или REPZ;
REPNE, или REPNZ.
Эти префиксы повторения указываются перед нужной цепочечной командой
в поле метки. Цепочечная команда без префикса выполняется один раз. Размеще-
ние префикса перед цепочечной командой заставляет ее выполняться в цикле. Раз-
личия приведенных префиксов — в основании, по которому принимается решение
о циклическом выполнении цепочечной команды: по состоянию регистра ЕСХ/СХ
или по флагу нуля ZF.
Префикс повторения REP (REPeat) используется с командами, реализующими
операции-примитивы пересылки и сохранения элементов цепочек, — соответ-
ственно, MOVS и
Префикс REP заставляет данные команды выполняться,
пока содержимое в ЕСХ/СХ не станет равным 0. При этом цепочечная команда,
перед которой стоит префикс, автоматически уменьшает содержимое ЕСХ/СХ на
единицу. Та же команда, но без префикса, этого не делает.
Префиксы повторения REPE (REPeat while Equal) и REPZ (REPeat while Zero)
являются абсолютными синонимами. Они заставляют цепочечную команду
выполняться до тех пор, пока содержимое ЕСХ/сх не равно 0 или флаг ZF равен
Как только одно из этих условий нарушается, управление передается следую-
щей команде программы. Благодаря возможности анализа флага ZF наиболее
эффективно эти префиксы можно использовать с командами
и SCAS для
поиска различающихся элементов цепочек.
Префиксы повторения REPNE (REPeat while Not Equal) и REPNZ (REPeat while
Not Zero) также являются абсолютными синонимами. Их действие на цепочеч-
ную команду несколько отличается от действий префиксов REPE/REPZ. Префик-
сы REPNE/REPNZ заставляют цепочечную команду циклически выполняться до
тех пор, пока содержимое ЕСХ/СХ не равно нулю или флаг ZF равен нулю. При
нарушении одного из этих условий работа команды прекращается. Данные пре-
фиксы также можно использовать с командами
и SCAS, но для поиска со-
впадающих элементов цепочек.
Следующий важный момент, связанный с цепочечными командами, заключа-
ется в особенностях формирования физического адреса операндов адрес_источни-
ка и

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   139   140   141   142   143   144   145   146   ...   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