data segment para public
PRINT MACRO STR ; макроподстановка для печати сообщений
lea DX, STR
mov AH, 9h ; 09h - функция вывода на экран
int 21h
ENDM
message db 'Введите строку из чисел: $'
message2 db 'По возрастанию: $'
Max db 5
len db 0
massiv db 6 dup (?)
data ends
stck segment para stack
dw 32 dup(?)
stck ends
code segment para public
assume cs:code, ds:data, ss:stck
start:
PRINT message
mov ax, data
mov ds, ax
mov dx, offset max
mov ah, 10
int 21h
mov bl, len
xor bh, bh
mov byte ptr massiv, '$'
C:
mov cx, data
dec cx
lea bx, max
xor si, si
B:
mov ax, [bx + si]
mov di, si
A:
add di, 2
mov dx, [bx + di]
cmp ax, dx
jl davaytuda
mov [bx+di], ax
mov [bx+si], dx
davaytuda:
mov dx, data
shl dx, 1
cmp di, dx
jnl A
add si, 2
loop B
xor si, si
xor di, di
dec bp
cmp bp,0
jne c
mov ah,1
int 21h
mov ax, 4c00h
int 21h
PRINT message2
code ends
end start
Добавлено через 1 минуту и 26 секунд:Пользователь вводит их в строку, например 54321, а программа выводит 12345. Поиск не помог, сам тоже пока не могу разобраться как это сделать т.к. только начал изучать. Сейчас программа выводит какой-то мусор и не выдает результат сортировки...