Курсовая работа: Конкатенація строк Assembler
test al, al ; exit when terminator is written
jne @B
pop edi
mov eax, lpszSource
ret
strCat endp
Ближче познайомимося з кодом цієї функції. У регістр ediзагружається ісходна строка, до якої буде конкатинуватися інша строка, яка знаходиться у регістрі ecx. Регістр edi зміщується за розміром ісходної строки, щоб почати писати до неї з кінця. Далі йде цикл, який посимвольно додає до строки байти з іншої строки. Признаком кінця циклу є нулевий термінатор. По виходу з цікла регістр ediвостанавлюється .
2.2 Приклад виконання
Далі неведено декілька прикладів виконання. Наприклад якщо операнд а буде рівен 0(рис. 2. 1)
Рис. 2.1
Також примір, якщо b буде рівно 0.(Рис. 2.2)
Рис. 2.2
Тепер приклад, якщо а и б рівні(рис. 2.3).
Рис. 2.3
Тепер якщо а більше б(рис. 2.4).
Рис. 2.4
Та останній приклад, якщо а менше б(рис. 2.5)
Рис. 2.5
ВИСНОВОК
Згідно з завданням до курсової роботи, було розроблено три функції на мові Асемблеру, що дозволило зробити їх більш компактними та такими, що є більш ефективними з точки зору не лише кількості операцій, але й за рахунок більшого використання високошвидкісних регістрів замість пам'яті, де це було можливо.
СПИСОК ЛІТЕРАТУРИ
1. Абель П."Язык Ассемблер для IBM РС и программирование".
2. Нортон П."Язык Ассемблера для IBM PC".
3. Юров, Хорошенко "Assembler: учебный курс".