Консультация № 136481
12.05.2008, 15:25
0.00 руб.
0 1 1
Здравствуйте!
требуется написать программу: СОРТИРОВКА ЭЛЕМЕНТОВ ТАБЛИЦЫ ПУЗЫРЬКОВЫМ МЕТОДОМ. Как это реализовать на ассемблере?

Обсуждение

Неизвестный
12.05.2008, 17:18
общий
это ответ
Здравствуйте, Донцова Анастасия Викторовна!
Исходный код программы - решения Вашей задачи можно скачать по адресу <a href=http://rusfaq.ru/upload/653>http://rusfaq.ru/upload/653</a>
А также в приложении
Я не знаю Вашего уровня, а потому не писал подробных пояснений. Что не понятно будет, спросите в минифоруме этого вопроса
---
ЗЫ: получить нужно СОМ-файл- модель TINY

Приложение:
.model tiny.386.codeorg 100hstart: mov ax, 3 int 10h lea dx, msgBefore mov ah, 9 int 21h ; заполнение массива lea di, X mov cx, X_len cld@@fill: mov AX, X_len sub AX, CX STOSW LOOP @@fill lea si, X cld mov cx, X_len@@1: lodsw CALL showDEC LOOP @@1 lea dx, msgAfter mov ah,9 int 21h ; СОРТИРОВКА lea si, X mov cx, X_len dec cx ; на 1 меньше элементов просмотреть@@2: lodsw ; загружаем в АХ очередной элемент ; SI увеличивается на 2 ; сравниваем со всеми последующими, и, если встречаем меньший то заменяем push cx mov di, si ; после LODSW si указывает на следующий элемент @@3: cmp ax, [di] jge @@4 ; меньше - ничего не делать mov dx, [di] mov [di], ax mov [si-2], dx mov ax, dx @@4: add di, 2 LOOP @@3 pop cxLOOP @@2 lea si, X mov cx, X_len@@10: lodsw CALL showDEC LOOP @@10 lea dx, msgPress mov ah, 9 int 21h xor ax, ax int 16hint 20hlX db ‘Массив‘X_len equ 50X dw X_len dup (?)msgBefore db ‘Массив до сортировки:‘,13,10,‘$‘msgAfter db 13,10,‘Массив после сортировки:‘,13,10,‘$‘msgPress db 13,10,‘Нажмите любую клавишу ...$‘; Вывод на экран числа из АХ в десятичном; с выравниваем на 8 позиций, прижимает вправоshowDEC procpush axpush bxpush cxpush dx xor cx, cx mov bx, 10@@100: xor dx, dx div bx push dx inc cx or ax, ax jnz @@100 mov bx, cxmov cx, 8sub cx, bx@@spaces: mov al, ‘ ‘ int 29hLOOP @@spaces mov cx, bx @@200: pop ax add al, ‘0‘ int 29h LOOP @@200pop dxpop cxpop bxpop ax retshowDEC endp end start
Форма ответа