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



Download 12,06 Mb.
Pdf ko'rish
bet149/357
Sana22.02.2022
Hajmi12,06 Mb.
#115195
TuriДиплом
1   ...   145   146   147   148   149   150   151   152   ...   357
Bog'liq
assembler uchebnik dlya vuzov 2-e izd YuRXUW1

Сканирование цепочек
Команды, реализующие операцию-примитив
цепочек,
поиск некоторого значения в области памяти. Логически эта область памяти рас-
сматривается как последовательность (цепочка)
фиксированной дли-
ны размером 8, 16 или 32 бита. Искомое
предварительно должно быть
помещено в один из регистров AL/AX/EAX. Выбор
регистра из
трех
должен быть согласован с размером
цепочки, в которой осуществляет-
ся поиск. Система команд процессора предоставляет
четыре коман-
ды сканирования цепочки. Выбор конкретной команды определяется размером
SCAS
— сканировать цепочку
SCASB — сканировать цепочку байтов (SCAning String Byte);
ж SCASW — сканировать цепочку слов (SCAning String Word);
Я SCASD — сканировать цепочку двойных слов
String
Word).
Команда SCAS
Синтаксис команды SCAS:
Команда имеет один операнд, обозначающий местонахождение цепочки в
полнительном сегменте (адрес
должен быть заранее
в
страх ES:EDI/DI). Транслятор
тип идентификатора
который обозначает
в
данных, и формирует одну из трех машин-
ных команд, SCASB, SCASW или SCASD. Условие поиска для каждой из этих трех ко-
манд находится в строго
месте. Так, если цепочка описана с помощью
директивы DB, то искомый элемент должен быть байтом, находиться в регистре AL,
и
цепочки осуществляется
SCASB. Если цепочка описана с
помощью директивы DW, то это — слово в регистре АХ, и поиск ведется командой
SCASW. Если цепочка
с помощью директивы DD, то это — двойное слово
в ЕАХ, и поиск ведется командой SCASD. Принцип поиска тот же, что и в команде
сравнения
то есть последовательное
вычитания (содержимое
регистра аккумулятора минус содержимое очередного элемента цепочки). В зави-
симости от результатов вычитания
флагов, при этом сами
операнды не изменяются. Так
как и в случае команды
с командой SCAS
удобно использовать префиксы
или REPNE/REPNZ.
S REPE или REPZ — если
поиск до
пор,
не будет вы-
полнено одно из двух условий:
будет достигнут конец
(содержимое ЕСХ/СХ
0);
в цепочке встретится элемент, отличный от элемента в регистре
til REPNE или REPNZ — если нужно организовать поиск до тех пор, пока не будет
выполнено одно из двух условий:
П будет достигнут конец цепочки (содержимое ЕСХ/СХ равно 0);
П в цепочке встретится элемент, совпадающий с элементом в регистре AL/AX/EAX.


260 Глава
Цепочечные команды
Таким
команда SCAS с префиксом REPE/REPZ позволяет найти элемент
цепочки, отличающийся по значению от заданного в аккумуляторе. Команда SCAS
с префиксом REPNE/REPNZ позволяет найти элемент цепочки, совпадающий по зна-
чению с элементом в аккумуляторе. В качестве примера рассмотрим листинг 12.3,
в котором реализован поиск символа в строке. В программе используется коман-
да-примитив SCAS. Символ задается явно (строка 20). Префикс повторения — REPNE.
Листинг
Поиск символа в строке командой SCAS
MODEL
STACK 256
тексты сообщений
db
найден!
nochar db
не
;строка для поиска
string db "Поиск символа в этой
ASSUME ds:@data,es:@data
main:
mov
mov
;настройка ES на DS
mov
lea
int 21h
сообщения
mov
;символ для поиска -
;сброс флага df
lea
;загрузка в
смещения строки
mov
префикса repne - длина строки
в строке (пока искомый символ и символ в строке не совпадут)
при первом совпадении
repne
string
je found ;если равны - переход на обработку,
failed:
- выполняем некоторые действия
сообщения о том, что символ не найден
mov
lea
int 21h
сообщения nochar
exit
выход
found: ;совпали
mov
lea
int 21h
сообщения fnd
;теперь, чтобы узнать место, где совпал элемент в строке,
;необходимо уменьшить значение в регистре di и вставить нужный обработчик
; dec di
;... вставьте обработчик
mov
int 21h
end main

Download 12,06 Mb.

Do'stlaringiz bilan baham:
1   ...   145   146   147   148   149   150   151   152   ...   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