[NASM] Расположить символы строки в обратном порядке - Assembler
Формулировка задачи:
Добрый день! На ассемблере NASM необходимо написать программу, которая при вводе строки будет изменять порядок символов на противоположный, положение символа 10(\n) остаётся без изменений. Код ниже - результат попытки перевести готовую программу, написанную на языке TASM. Помогите, пожалуйста, найти ошибки и исправить их.
P.S. Программирование на ассемблере идёт в ВУЗе 1 семестр, времени изучать его с нуля и учиться самостоятельно писать более-менее непримитивные программы, к сожалению, нет.
SECTION .data Msg: db 'Введите строку: ',10,13,'$' Msg1: db 'В обратном порядке: ',10,13,'$' leng DW (0) SECTION .bss buf1: resb 80 buf2: resb 80 SECTION .text GLOBAL _start _start: mov ax, 4 mov bx, 1 mov cx, Msg mov dx, 80 int 80h mov ax, 3 mov bx, 0 mov cx, buf1 mov dx, 80 int 80h mov cx, ax mov leng, ax sub ax, 2 mov bx, buf1 mov si, buf2 add si, ax dec si Frag: mov al, [bx] mov [si], al inc bx dec si loop Frag mov ax, 4 mov bx, 1 mov cx, Msg1 mov dx, 80 int 80h mov cx, leng mov bx, 1 mov dx, buf2 int 80h mov ax, 1 mov bx, 0 int 80h
Решение задачи: «[NASM] Расположить символы строки в обратном порядке»
textual
Листинг программы
mov word [leng], ax
Объяснение кода листинга программы
- Переменная
leng
используется для хранения длины строки. - Переменная
ax
используется для временного хранения значения длины строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д