Разработать в среде программирования SASM на языке программирования
Ассемблер программу.
Задача: написать программу, которая будет реализовать функцию
конкатенации (склейки) двух строк. Функция конкатенации принимает на
вход две строки и дописывает вторую в конец первой так, чтобы первая строка
представляла из себя одну строку равную конкатенации двух исходных.
Другие языки программирования и технологии
Задача на ассэмблере
extern puts
section .data
str1 db "Hello, ",0
str2 db "World!",0xa,0
section .bss
result resb 256
section .text
global main
main:
push rbp
mov rbp, rsp
lea rdi, [result]
lea rsi, [str1]
lea rdx, [str2]
call string_cat
lea rdi, [result]
call puts ; Hello, World!
xor eax, eax
leave
ret
string_cat:
push rbp
mov rbp, rsp
mov qword [rbp - 8], 0 ; size
mov qword [rbp - 16], rdi ; dest
mov qword [rbp - 24], rsi ; str1
mov qword [rbp - 32], rdx ; str2
jmp .cp_first_str
.cp_first_str_loop:
mov rax, qword [rbp - 24]
lea rdx, [rax + 1]
mov qword [rbp - 24], rdx
mov rcx, qword [rbp - 16]
mov rdx, qword [rbp - 8]
add rdx, rcx
movzx eax, byte [rax]
mov byte [rdx], al
inc qword [rbp - 8]
.cp_first_str:
mov rax, qword [rbp - 24]
movzx eax, byte [rax]
cmp al, 0
jne .cp_first_str_loop
jmp .cp_second_str
.cp_second_str_loop:
mov rax, qword [rbp - 32]
lea rdx, [rax + 1]
mov qword [rbp - 32], rdx
mov rcx, qword [rbp - 16]
mov rdx, qword [rbp - 8]
add rdx, rcx
movzx eax, byte [rax]
mov byte [rdx], al
inc qword [rbp - 8]
.cp_second_str:
mov rax, qword [rbp - 32]
movzx eax, byte [rax]
cmp al, 0
jne .cp_second_str_loop
leave
ret
Все кто мог это сделать уже умерли или в состоянии деменции в домах престарелых
Andrey Isaev
ты оракул или кто, делай давай
Рустам Тухтасинов
Я не умер, но помогать не буду. Одному помог, так он мой ответ "посчитал безсполезным")
Похожие вопросы
- Ассэмблер нужна помощь
- Ускоряют ли работу кода вставки на ассэмблере (С++)
- Как на языке С++ сделать вывод 5 задач через switch-case?
- Как вы решаете задачи?
- Нужна помощь в решении задачи по С++ связанная с матрицами
- Олимпиадные задачи по BASIC 4.5 ПОМОГИТЕ !!!
- Как ответ на эту задачу записать в паскале, либо просто в алгоритм?
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Объясните, пожалуйста, как решить задачу по информатике...
- Задача на паскале