Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по МО.doc
Скачиваний:
51
Добавлен:
01.06.2015
Размер:
354 Кб
Скачать
☆

Inc cx ;нет, увеличиваем счетчик символов

cmp AL, NEWLINE ;а не символ ли это новой строки?

jnz LineCountLoop ;нет, продолжаем просмотр строки

Inc dx ;да, увеличиваем счетчик строк

jmp LineCountLoop

EndLineCount:

cmp byte ptr [SI-2], NEWLINE ;есть ли в хвосте символLF

je NoLastLine ;есть, не будем увеличивать счетчик строк

Inc dx ;нет, будем увеличивать счетчик строк

NoLastLine:

mov BX,[BP+6] ;BX - указатель на счетчик символов

mov [BX],CX ;

mov AX, DX ;возвращаемое значение - счетчик строк

pop SI ;+эпилог

pop BP

ret ;-эпилог

_LineCount ENDP

END

4. Варианты заданий

Во всех заданиях следует разработать некоторую подпрограмму на ассемблере с интерфейсом Pascal или C и вызывающую про­грамму, на соответствующем языке. Вызывающая программа должна демонстрировать работоспособность ассемблерной подпро­граммы. Если в задании язык не указан, то можно выбрать любой.

  1. Разработать подпрограмму на ассемблере, которая выполняет пересылку указанного числа байт. Адреса источника и прием­ника – параметры. Подпрограмма должна возвращать количе­ство пересланных байт.

  2. Разработать подпрограмму на ассемблере, которая выполняет обмен указанного числа байтов. Адреса областей памяти – опе­рандов должны быть переданы как параметры. Подпрограмма должна возвращать количество перемещенных байтов.

  3. Разработать подпрограмму на ассемблере, которая определяет и возвращает номер первого установленного бита в массиве бай­тов. Адреса массива и его размер должны быть переданы как параметры.

  4. Разработать подпрограмму на ассемблере для определения длины строки. Адрес строки – параметр. Подпрограмма должна возвращать длину строки.

  5. Разработать подпрограмму на ассемблере для сравнения строк (аналог функции strcmp языка C). Адрес строки – параметр. Подпрограмма должна возвращать длину строки. Язык – C.

  6. Разработать подпрограмму на ассемблере для сравнения строк (аналог функции strcnmp языка C). Адрес строки – параметр. Подпрограмма должна возвращать длину строки. Язык – C.

  7. Разработать подпрограмму, которая определяет, содержится ли одна заданная строка в другой заданной строке, и если да, то, начиная с какой позиции. Разработать программу, которая вводит с клавиатуры две строки и сообщает, содержится ли одна из них в другой и сколько раз. Язык – C.

  8. Разработать подпрограмму, которая подсчитывает, сколько раз заданный символ встречается в строке. Разработать программу, которая вводит с клавиатуры строку, вводит число N и выдает список символов, которые встречаются в строке не менее чем N раз. Язык – C.

  9. Разработать две подпрограммы, одна из которых соединяет две строки в одну, а другая обрезает строку до заданной длины (или дополняет пробелами, если длина строки меньше задан­ной). Разработать программу, которая вводит с клавиатуры число N, затем вводит несколько строк (конец ввода – пустая строка) и формирует новую строку, состоящую из первых N символов каждой введенной строки.

  10. Разработать подпрограмму, которая разбивает заданную строку на две части: первое слово строки (до первого пробела) и оста­ток строки (пробелы после первого слова отбрасываются).

  11. Разработать подпрограмму, которая определяет, содержится ли одна заданная строка в другой заданной строке, и если да, то, начиная с какой позиции. Язык – Pascal.