Реферат по предмету "Информатика"


Программы копирования строки

Министерство РФ по связи и информатизации
Поволжская государственная академия телекоммуникаций
и информатики
Кафедра «ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
КОНТРОЛЬНАЯ РАБОТА
ПО ПРЕДМЕТУ
«Организация ЭВМ и систем»
Самара
2009 г.
Программа копирования строки в обратном порядке
Составить программу копирования строки из 15 символов в рядом расположенную область памяти, но в обратном порядке.
Для этого мы создаём две строки. Одна выполняет роль источника данных, а другая – приёмник. Затем мы определяем адрес источника и получателя с помощью команды Lea, которая является альтернативой оператору ассемблера offset. В отличие от offset команда lea допускает индексацию операнда, что позволяет более гибко организовать адресацию операндов. Так как нам нужно заполнить память в обратном порядке, то мы сразу смещаем адрес приёмника DI на 15 байтов. Организовываем цикл и посредством промежуточного регистра AL заносим наши символы в регистр DI, уменьшая, с каждым шагом, байты записи. После того, как счётчик CX уменьшится до 0, программа завершит свою работу
ЛИСТИНГ ЗАДАЧИ «Программирование строки в обратном порядке»
Задача 17
Data Segment; открыть сегмент данных
text1 DB 'My name Valerij', 13, 10, '$'
text2 DB 25 DUP(?); строка получатель
Data ENDS; Закрыть сегмент данных
;-----------------------------------------------
STK Segment; открыть сегмент данных
DB 100 DUP(?); зарезервировать под стек 100 ячеек памяти
STK ENDS; закрыть сегмент стека
;---------------------------------------------------
ASSUME SS:STK, CS:CODE, DS:DATA; назначить сегментные регистры
;-----------------------------------------------------
CODE Segment; открыть сегмент кода
START: mov AX, DATA; загрузка сегментного регистра DS
mov DS, AX; регистра DS
lea SI, TEXT1; начальный адрес строки-источника занести в SI
lea DI, TEXT2; начальный адрес строки получателя занести в DI
mov CX, 15; переслать 15 байтов
Metka1: mov AL, [SI]; выполнить пересылку
mov [DI + 15], AL; через промежуточный регистр AL
INC SI; увеличить адрес источника на 1
DEC DI; уменьшить адрес источника на 1
LOOP Metka1; (CX)-1, повторить цикл пока CX не равно 0
mov AL, 0; завершить программу через
mov AH, 4Ch; системную функцию возврата
int 21h; в DOS
CODE ENDS; закрыть сегмент кода
END START; закрыть программу
Программа копирования строки на прямую
Составить программу производящую копирование строки из 15 символов в расположенную рядом область памяти.
Задача, практически идентичная предыдущей. За исключением способа пересылки строки. В данном случее нам уже не требуется вести запись в обратном порядке. Также, создаём две строки. Одна выполняет роль источника данных, а другая – приёмник. Затем мы определяем адрес источника и получателя с помощью команды Lea. Приёмник DI на 15 байтов больше не смещаем.
Организовываем цикл и посредством промежуточного регистра AL заносим наши символы в регистр DI. При каждом шаге байты будем увеличивать в регистре DI на один. После того, как счётчик CX уменьшится до 0, программа завершит свою работу.
ЛИСТИНГ ЗАДАЧИ «Программа копирования строки на прямую»
Задача 1
Data Segment; открыть сегмент данных
text1 DB 'abcdefghijklmno', 13, 10, '$'
text2 DB 25 DUP(?); строка получатель
Data ENDS; Закрыть сегмент данных
;-----------------------------------------------
STK Segment; открыть сегмент данных
DB 100h DUP(?); зарезервировать под стек 100 ячеек памяти
STK ENDS; закрыть сегмент стека
;---------------------------------------------------
ASSUME SS:STK, CS:CODE, DS:DATA; назначить сегментные регистры
;-----------------------------------------------------
CODE Segment; открыть сегмент кода
START: mov AX, DATA; загрузка сегментного регистра DS
mov DS, AX; регистра DS
lea SI, TEXT1; начальный адрес строки-источника занести в SI
lea DI, TEXT2; начальный адрес строки получателя занести в DI
mov CX, 15; переслать 15 байтов
Metka1: mov AL, [SI]; выполнить пересылку
mov [DI], AL; через промежуточный регистр AL
INC SI; увеличить адрес источника на 1
INC DI; увеличить адрес приёмника на 1
LOOP Metka1 ;(CX)-1 повторить цикл пока CX не равно 0
mov AL, 0; завершить программу через
mov AH, 4Ch; системную функцию возврата
int 21h; в DOS
CODE ENDS; закрыть сегмент кода
END START; закрыть программу
/>


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Образ героя в мифологии древних кельтов на примере ирландских саг
Реферат Финансовый анализ как инструмент сравнительного анализа положения фирм в отрасли обобщенные финансовые
Реферат Современное состояние и перспективы развития международных отношений ИРИ и ЕС
Реферат Адамович (сша) Чемпион мира по метанию ножей
Реферат Шпаргалки по предмету право
Реферат Теоретический и сравнительно-правовой анализ англосаксонского и романо-германского права
Реферат Атмосфера 3
Реферат Неврозы детей. Причины и следствия
Реферат Педагогика как область гуманитарного знания. Философские принципы в воспитании и образовании
Реферат Особенности ресторанного обслуживания в странах Европы
Реферат Руководство по применению респираторов в промышленности (США)
Реферат Учёт и анализ затрат на оплату труда на примере ОАО Полярнинский хлебозавод
Реферат Macbeth Essay Essay Research Paper MacBeth EssayWe
Реферат Современная технология терраццо
Реферат Типы интегральных схем