Название: Программы копирования строки
Вид работы: контрольная работа
Рубрика: Информатика
Размер файла: 27.18 Kb
Скачать файл: referat.me-132943.docx
Краткое описание работы: Министерство РФ по связи и информатизации Поволжская государственная академия телекоммуникаций и информатики Кафедра «ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА» КОНТРОЛЬНАЯ РАБОТА
Программы копирования строки
Министерство РФ по связи и информатизации
Поволжская государственная академия телекоммуникаций
и информатики
Кафедра «ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
КОНТРОЛЬНАЯ РАБОТА
ПО ПРЕДМЕТУ
«Организация ЭВМ и систем»
Самара
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 ; закрыть программу
Похожие работы
-
Отчет по лабораторной работе по Информатике
Санкт-Петербургский Государственный Университет Телекоммуникаций им.Бонч-Бруевича Отчет к лабораторной работе №3 Выполнила: Колесова Р.В. Студентка группы СК-85
-
по Информатике и математике
МИНИСТЕРСТВО ЮСТИЦИИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное образовательное учреждение высшего профессионального образования Российская правовая академия
-
Построение логической модели исследуемой системы
Тульский институт экономики и информатики Кафедра информационных технологий Контрольная работа По дисциплине: Интеллектуальные информационные системы
-
по Информатике 8
МИНИСТЕРСТВО ФИНАНСОВ ПРАВИТЕЛЬСТВА МОСКОВСКОЙ ОБЛАСТИ РОССИЙСКОЙ ФЕДЕРАЦИИ КОРОЛЁВСКИЙ ИНСТИТУТ УПРАВЛЕНИЯ, ЭКОНОМИКИ И СОЦИОЛОГИИ Кафедра информатики Контрольная работа
-
Проектирование базы данных по учету основных средств
МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА И ПРОДОВОЛЬСТВИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ УЛЬЯНОВСКАЯ ГОСУДАРСТВЕННАЯ СЕЛЬСКОХОЗЯЙСТВЕННАЯ АКАДЕМИЯ КАФЕДРА ИНФОРМАТИКИ
-
Использование информатики для решения экономических задач
Министерство образования и науки Украины Донбасская Государственная машиностроительная академия Контрольная работа по дисциплине "Информатика"
-
Информатика Дополнительные разделы
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Северо-Западный государственный заочный технический университет Кафедра информатики Контрольная работа
-
Использование графики в текстовом документе Word
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ КАФЕДРА ИНФОРМАЦИОННЫЕ КОМПЬЮТЕРНЫЕ ТЕХНОЛОГИИ Лабораторная работа №6
-
Вычисление определённых интегралов
Министерство Образования Российской Федерации Рязанская государственная радиотехническая академия Кафедра вычислительной и прикладной математики.
-
Изображение движущегося объекта на фоне неподвижных предметов
Московская открытая социальная академия Финансово-экономический факультет Кафедра информационных технологий в экономике К У Р С О В А Я Р А Б О Т А по дисциплине