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