Сортировка по возрастанию - Assembler

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста, вроде сделал задачу, выдаёт ошибку. "Ввести строку символьных данных, задавая буфер равный 30 байт. Вводить только числовые символы. Отсортировать строку по по возрастанию и выдать на экран в 10 строку начиная с любой позиции". Ошибка: "unmatched block nesting: DOD "
STO Segment Stack
    DB 30dup(' ')
 
DOD ENDS
CSC Segment
PR PROC PAR
ASSUME DS:DOD,CS:CSC,SS:STO
PUSH DS
SUB AX,AX
PUSH AX
MOV  AX,DID
MOV DS,AX
 
================
Установка курсора
MOV AH,02
MOV BH,00
 
================
Очистка экрана
 
MOV AX 0600h
MOV BH,07
MOV CX,0000h
MOV DX,184fh
INT 10h
========
ввод строки
MOV AH,0AH; 
LEA DX,A
INT 21H
==============
переход на новую строку 
 
MOV DL,0AH; 
MOV AH,2
INT 21H
================= 
Сортировка
M MOV CL,A+1
    MOV CH,0
    DEC CX
 
Z:
    PUSH CX
    MOV BX,2
T:
    MOV DH,A[BX]
    CMP DH,A[BX+1]
    JLE K
    XCHG DH,A[BX+1]
    MOV A[BX],DH
K:
    INC BX //
    LOOP T
    POP CX
 
    LOOP Z
 
R:
LEA DX,A+2
MOV AH,9
INT 21H
 
ret
A DB 10,0,10 DUP ('$')// символ доллара добавляется для восприятия строки машиной
 
    ret
pr  endp
csc ends
    end pr
Если удалить строчку с DOD, то все вообще красное

Решение задачи: «Сортировка по возрастанию»

textual
Листинг программы
STO ENDS

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


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

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

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