Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №4 ПА.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
297.98 Кб
Скачать

Заключение

Строковые (цепочечные) команды являются удобным инструментом при обработке массивов данных, как текстовых, так и числовых. Правильное их использование делает код программы лаконичнее, а время выполнения – меньше.

Литература

  1. Абель П. Язык Ассемблера для IBM PC и программирования. – М.: Высш. шк., 1992. – 447 с.

  2. Григорьев В.Л.. Микропроцессор i486. Архитектура и программирование (в 4-х книгах). – М.: ГРАНАЛ, 1993. – 346 с. (кн.1), 382 с. (кн.2-4).

  3. Григорьев В.Л.. Программирование однокристальных микропроцессоров. М. Энергоатомиздат, 1987. - 288 с.

  4. Дао Л.. Программирование микропроцессора 8088. М.: Мир, 1988. - 357 с.

  5. Лю Ю - Чжен, Гибсон Г.. Микропроцессоры семейства 8086/8088. М.: Радио и связь, 1987. - 512 с.

  6. Майко Г.В. Ассемблер для IBM PC. М.: Бизнес-Информ, Сирин 1997. - 212 с.

  7. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. М.: ДИАЛОГ - МИФИ, 1997. - 288 с.

  8. Юров В.И. Ассемблер: учебник. С-Пб.: "Питер", 2000. - 589 с.

Приложения

Приложение 1. Пример программы.

Ниже приведен пример программы на языке Ассемблер, выполняющей поиск байтов в массиве (строке) str1 и вывод сообщения о номере позиции найденного символа в строке. Если ни одного искомого символа не было, то ничего не выводится.

name strings5

.model small

.stack

.data

rule db '0123456789' ; линейка

str1 db '*A******AA'

mess db 10,13,'position = '

pos db ' !$'

.code

;---------------------

start:

mov ax,@data

mov ds,ax

mov es,ax

assume es:@data

cld

mov cx,10

mov di,offset str1

mov al,'A' ; искомый символ

next:

repne scas str1 ; поиск

je Ok ; символ найден!

jmp eos ; конец строки

Ok:

push ax ; сохранить AL (искомый символ)

mov dx,di

dec dx ; т. к. di указывает на следующий байт!

sub dx,offset str1 ; смещение относительно начала строки

or dl,30h ; преобразовать в ASCII код

mov pos,dl ; вставить в текст сообщения

mov ah,09h

mov dx,offset mess

int 21h ; вывести сообщение

pop ax ; восстановить AL (искомый символ)

jmp next ; продолжить поиск

eos:

.exit

;---------------------

position = 1!

position = 8!

position = 9!

end start

position = 1!

position = 8!

position = 9!

Результат работы программы: