Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- section .data
- input_string db 'Hello, World!', 0 ; Ваша строка для чтения
- output_string db 20 dup(0) ; Буфер для перевернутой строки
- section .text
- global _start
- _start:
- ; Находим длину входной строки
- mov ecx, 0
- find_length:
- cmp byte [input_string + ecx], 0
- je reverse_string
- inc ecx
- jmp find_length
- reverse_string:
- ; Начинаем обратный цикл
- mov esi, ecx ; esi - индекс конца строки
- dec esi ; уменьшаем на 1, чтобы получить последний символ строки
- mov edi, 0 ; edi - индекс начала новой строки
- reverse_loop:
- cmp esi, 0 ; проверяем, достигли ли начала строки
- jl end_program
- ; Читаем символ из оригинальной строки
- mov al, [input_string + esi]
- ; Сохраняем символ в новой строке
- mov [output_string + edi], al
- ; Увеличиваем индексы
- inc edi
- dec esi
- ; Переходим к следующей итерации цикла
- jmp reverse_loop
- end_program:
- ; Завершаем программу
- ; Ваш код для вывода или дальнейших действий
- ; Прерывание для выхода из программы
- mov eax, 1 ; код системного вызова для exit
- xor ebx, ebx ; код возврата 0
- int 0x80 ; вызов системного прерывания
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement