[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

Объяснение кода листинга программы

  1. Переменная leng используется для хранения длины строки.
  2. Переменная ax используется для временного хранения значения длины строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы