Сортировка по возрастанию - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д