Хелпикс

Главная

Контакты

Случайная статья





УП.01.01 Разработка программных модулей программного обеспечения для компьютерных систем



УП.01.01 Разработка программных модулей программного обеспечения для компьютерных систем

Практическое занятие № 14

 

Тема: Работа со строками.

Цель:Закрепить навыки использования команд для работы со строками в Assembler.

Оборудование: лаборатория с персональными компьютерами, компилятор и компоновщик TASM.EXE, TLINK.EXE, отладчик Turbo Debugger.

                        

Порядок выполнения работы

Теоретическая часть.

Синтаксис Описание
SCASB Сравнивает содержимое области памяти (адресуемой регистрамиES:DI) с содержимым регистра AL, то есть производит поиск символа (AL) в строке (ES:DI).
REPNE SCASB Выполняет поиск до тех пор, покасимвол не обнаружен, либо строка закончилась. Длина строки указывается в регистре CX.После выполнения каждого сравнения значениеCXуменьшается на1, а значенияES:DIувеличивается на1.
CLD проход слева направо
STD проход справа налево
LODSString 1) Загрузить элемент из ячейки памяти, адресуемой парой DS:SI, в регистр AL. 2) Изменить значение регистра SI на величину, равную длине элемента цепочки.
STOSString 1) Записать элемент из регистра AL в ячейку памяти, адресуемую парой ES:DI.2) Изменить значение регистра DI на величину, равную длине элемента цепочки.

Пример применения.

 

   CLD            ; сброс флага DF

   MOV AL, ' '    ; (0) искать " "

   MOV CX, 45     ; длинна строки

   LEA DI, String1; адрес области, где искать

L1: REPNE SCASB    ; сканировать строку

   JNZ NotFound   ; если не найдена

   MOV SI, DI     ; (1) синхронизировать SI с DI

   LODS String1   ; загрузить в AL найденный символ

   SUB AL, 32     ; (2)преобразовать к верхнему регистру

   STOS String1   ; загрузить из AL в строку      

    MOV AL, ' '    ; (3) искать " "        

   JMP L1         ; продолжить поиск



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.