Repe cmpsb

je EQ; Строки X и Y равны

jb LT; Строка X меньше Y

ja GT; Срока X больше Y

 

В нашем примере сравниваемые строки для простоты расположены в одном сегменте (сегменте данных). Как видим, основная часть работы – последовательное сравнение в цикле символов двух строк до первых несовпадающих символов или до конца строк – выполняется двумя тесно связанными командами repe cmpsb .

Остальные строковые команды имеют формат регистр-память, но они тоже ориентированы на задачи обработки строк (массивов) коротких и длинных целых чисел. Команды сканирование строки являются командами сравнения и, при использовании в цикле, хорошо подходят для поиска в строке заданного короткого (scasb) или длинного (scasw) целого значения. Эти команды отличаютсяя только битом размера аргументов w и имеет два неявных операнда op1 и op2, где op1=al для w=0, и op1=ax для w=1, а второй неявный операнд op2=<es,di> является соответственно байтом или словом. Если обозначить буквой r соответственно регистры al или ax, то схему выполнения команд сканирования строки можно записать так:

cmp r,<es,di>; φ(di)

Для иллюстрации использования команды сканирования напишем фрагмент программы для реализации следующей задачи: в массиве длинных целых чисел найти номер последнего нулевого элемента (пусть элементы нумеруются с единицы). Если в массиве нет нулевых элементов, то будем в качестве ответа выдавать номер ноль.

 

N equ20000

D segment

. . .

X dw N dup (?)

. . .

D ends

C segment

assumecs:C,ds:D,es:D,ss:Stack

Start:mov ax,D

mov ds,ax

mov es,ax

. . .

mov cx,N; Число элементов

sub ax,ax; Образец для поиска=0

lea si,X+2*N-2; Последний элемент

std ; Обратный просмотр








Дата добавления: 2015-10-05; просмотров: 825;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.