Сортировка по возрастанию - Assembler
Формулировка задачи:
Помогите пожалуйста, вроде сделал задачу, выдаёт ошибку.
"Ввести строку символьных данных, задавая буфер равный 30 байт. Вводить только числовые символы. Отсортировать строку по по возрастанию и выдать на экран в 10 строку начиная с любой позиции".
Ошибка: "unmatched block nesting: DOD "
Если удалить строчку с 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Решение задачи: «Сортировка по возрастанию»
textual
Листинг программы
STO ENDS