Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Виконала: Крашеніннікова Вікторія Вадимівна
Студентка групи АП-31б
ЛАБОРАТОРНА РОБОТА №4
Тема: "Робота з рядками у мові асемблер”
Мета: Придбання та закріплення практичних навичок у складанні та відладці програм, що містять у собі команди обробки рядків у мові асемблер. Індивідуальне завдання: Задані дві рядки str1 та str2 типу word Знайти співпадаючі елементи, замінити їх у першому рядку на 0.
Розробка алгоритму вирішення задачі
Вибір змінних:
Ім’я змінної |
Призначення змінних |
Str1 |
По перший рядок |
Str2 |
По другий рядок |
n |
Кі |
Текст програми:
data segment
string1 db 'Pervaya stroka..',0Ah,0Dh,'$'
string2 db 'Vtoraya strochka',0Ah,0Dh,'$'
n dw 16d
data ends
stak segment stack ;описание сегмента стека
dw 30 dup(?) ;описываем сегмент из 30 слов (word) = 60 байт
;данные стека не обнуляются (т. к. незачем)
tos label word ;указатель на вершину стека
stak ends ;конец описания сегмента стека
code segment ;описание сегмента кода
;связь сегментных регистров с соответствующими
;сегментами
assume cs:code, ds:data, ss:stak
;start - точка входа в программу
start: mov ax,data ;через регистр ax в сегментный регистр ds записываем
mov ds,ax ;адрес сегмента данных (т. к. напрямую писать в
;сегментный регистр нельзя)
mov es,ax ;сегментный регистр дополнительного сегмента
;устанавливаем на тот же сегмент данных (т. к. строковые
;переменные используют его для адресации строки-приемника,
lea si,string1
lea di,string2
mov cx,n
cld
check:
repne cmpsb
jcxz next
dec si
xor ax, ax
mov ds:[si], ax
inc si
jmp check
next:
mov ah,9h
mov dx,offset string1
int 21h
mov ah,4ch ; Выход
int 21h ; в DOS
code ends
end start
Результати виконання програми:
Стан області даних до виконання програми:
Стан області даних після виконання програми:
Висновок:
В ході лабораторної роботи я придбала та закріпила практичні навички в написанні та відладці програм, що містять у собі команди обробки рядків у мові асемблер.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.