Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Ввод чисел и сортировка по возрастанию  (Прочитано 7181 раз)
0 Пользователей и 1 Гость смотрят эту тему.
antoha1
Новенький

ru
Offline Offline

« : 24-05-2012 12:56 » new

Код: (ASM)
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. Поиск не помог, сам тоже пока не могу разобраться как это сделать т.к. только начал изучать. Сейчас программа выводит какой-то мусор и не выдает результат сортировки...
« Последнее редактирование: 24-05-2012 12:57 от antoha1 » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 24-05-2012 14:11 » 

antoha1, отлаживать умеешь? Сначала отладь макрос PRINT. Затем с его помощью отладь ввод - т.е. напечатай то, что ввёл. Затем уже занимайся сортировкой.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines