Основы программирования микропроцессоров



Download 1,87 Mb.
bet58/119
Sana23.02.2022
Hajmi1,87 Mb.
#139915
TuriКонтрольные вопросы
1   ...   54   55   56   57   58   59   60   61   ...   119
Bog'liq
Системное программирование

5.7. Команды обработки строк


Рассмотренных групп команд вполне достаточно для реализации алгоритмов обработки строк. Однако система команда микропроцессора 8086 имеет специальные команды, т.к. они позволяют выполнить операцию сразу над всей строкой.
Во всех строковых командах под строкой понимается последовательность байтов (символов) или последовательность слов. Поэтому каждая команда представлена двумя вариантами – для обработки строк из байтов и из слов. Мнемокоды команд различаются только последней буквой – B (Byte) или W (Word) соответственно.
Команда CMPS (сравнение строк) сравнивает между собой байты или слова источника и приёмника (табл. 53). Флаги устанавливаются в соответствии с результатами выполнения операции сравнения. Оба операнда должны быть расположены в памяти. Адрес источника задаётся регистровой парой DS:SI, адрес приёмника – ES:DI. Сегментный регистр DS может быть заменён другим сегментным регистром с помощью префикса замены сегмента. Сегментный регистр ES не может быть заменён другим.
Табл. 53. Команда CMPS.

Код

Инструкция

Описание

A6

CMPSB

Сравнение байтов [DS:SI] и [ES:DI].

A7

CMPSW

Сравнение слов [DS:SI] и [ES:DI].

После выполнения операции содержимое регистров SI и DI автоматически увеличивается или уменьшается на размер операнда, т.е. на 1 или на 2 байта. Увеличение (инкремент) имеет место, если флаг направления DF в регистре флагов сброшен, а уменьшение (декремент) – если флаг DF установлен. Изменить флаг направления можно с помощью команд CLD и STD (см. раздел 5.11).
Сравнение, как и в команде CMP, выполняется вычитанием значения приёмника из значения источника. Эти значения рассматриваются как двоичные числа со знаком. Результат вычитания не сохраняется, и исходные операнды не изменяются. По результатам вычитания устанавливаются соответствующие признаки в регистре флагов. Инструкция CMPS выполняет сравнение только одной пары байтов или слов.
Рассмотрим пример сравнения двух байтовых строк A и B. Предположим, строка A расположена в сегменте данных DS, а строка B – в дополнительном сегменте ES. Длина обеих строк одинакова и равна N. Для организации побайтного сравнения от начала к концу строк необходимо сбросить флаг DF и организовать цикл. В регистр счетчика следует поместить число N, а выход из цикла выполнять по условию JNE.

CLD ; DF=0 просмотр вперед


LEA SI, A ; DS:SI = начало A
LEA DI, B ; ES:DI = начало B
MOV CX, N ; CX = длина строки
L: CMPSB ; сравнение пары символов
JNE L1 ; выход по метке L1, если A<>B
LOOP L ; переход к проверке следующей пары
... ; A=B
L1:... ; A<>B

Команда CMPSB сама изменяет значения индексных регистров SI и DI. Однако система команд предоставляет дополнительные средства, еще упрощающие приведенную конструкцию с помощью специальных префиксов повторения REP/REPxx (табл. 54). Префикс повторения обеспечивает многократное повторение одной и той же операции до обнуления счётчика или до выполнения заданного условия.


Табл. 54. Префикс повторения REP.


Download 1,87 Mb.

Do'stlaringiz bilan baham:
1   ...   54   55   56   57   58   59   60   61   ...   119




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