BigEdu.ru
» » » Программы копирования строки
Вернуться назад

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

Составить программу копирования строки из 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 ; закрыть программу

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Рефераты по информатике Составить программу копирования строки из 15 символов в рядом расположенную область памяти, но в обратном порядке. Для этого мы создаём две строки.
Оценок: 270 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru