Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65463
Модуль Forms 65220
Пример работы с... 64754
ТЕХНОЛОГИИ ДОСТ... 61918
Имитационное мо... 57795
Реклама
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

Пользователей: 13,086
новичок: Hamelion
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование процесса обработки заданий пакетным режимом работы с квант...
Файл записей с выводом обратного заголовка на Turbo Pascal
Программа тестирования и обучающая программа по математике на Turbo Pasc...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Сортировка
Осуществить сортировку нескольких сторок методом вставки в алфавитном порядке. каждая строка не превышает 100 символов .количество строк не более 20.

;осуществить сортировку нескольких сторок методом вставки в алфавитном порядке
; каждая строка не превышает 100 символов .количество строк не более 20

format mz

begin:
mov ax,cs
mov ds,ax
mov es,ax

call vvods
push ax




call sort

mov ah,9
mov dx,otsortmsg
int 21h

pop ax

call vuvod



mov ah,0x4C ;эта функция завершает программу
mov al,0 ;код возврата 0
int 0x21 ;вызываем ядро операционной системы

;;;;;;;;;;;;;;;;;;;;;;;;;;
;=========================
endl db 10,13,'$'
buf db 2020 dup (0) ;100 * 20 +20(конец строки)=2020 символов
temp db 101 dup (0); для обмена
vveditemsg db "Vvedite stroku:$"
otsortmsg db "Otsortirovanie strki:",10,13,'$'
sort:
;aх= количество строк
;берем элемент и сравниваем его с передыдущими элементами
;если нашли что элемент меньше за предыдущее то все сдигаем
;и оставляем место чтоб вставить туда элемент
;сравнение начинаем с первого элемента

cld ;flag
mov cx,ax
dec cx
xor bx,bx
mov bx,100
.cikl:
push cx
push bx ;???????????????????????????

mov di,buf
mov si,di ;???????????????????????????
add si,bx
;-------------------
@@:
;mov si,di ;строка которую будем со всеми сравнивать


push si
push di

mov cx,100
repe CMPSB
;jle .bolshe ;по убыванию
jge .bolshe ;по возрастанию

;je .bolshe
;вставляем туда а все остальное свигаем вправо
pop di ;куда нужно положить
pop si ;какую строчку берем
mov ax,di;сохраняем чтоб не потерять

;с si помещяем в переменную и затем строка -1 помещяем в si
;а в строку -1 помещяем все с переменои и так пока si не будет равен ах
.start:

cmp ax,si
ja .exitobmen
je .exitobmen
push si
; si->temp
mov di,temp ;???????????????????????????
mov cx,100 ;???????????????????????????
rep MOVSB

;si-100>si
pop si
mov di,si
sub si,100 ;???????????????????????????
push si

mov cx,100
rep MOVSB

;temp>si-100
pop si
push si

mov di,si
mov si,temp
mov cx,100 ;???????????????????????????
rep MOVSB




pop si

jmp .start
.exitobmen:
;call vuvmes
;конец обменан(смещения)
jmp .exitcikl
.bolshe:




pop di
pop si
add di,100 ;???????????????????????????
cmp si,di
je .exitcikl


jmp @r
.exitcikl:

;--------------------

;--------------------
pop bx
pop cx
add bx,100
loop .cikl
ret


vvods:
;воодим строки до пустой строки или уже ввели 20 строк
mov cx,20
xor bx,bx
@@:
push cx
push bx

mov ah,9
mov dx,vveditemsg
int 21h
pop bx
pop cx

push cx
push bx

;============
mov dx, buf
add dx,bx
mov ah,3Fh
mov bx,0
mov cx,99; максимум символов


int 21h
;===============


pop bx
pop cx
add bx,100

cmp ax,99
je .next
sub ax,2

.next:

add dx,ax ;???????????????????????????

mov ah,'$' ;???????????????????????????
mov si,dx ;???????????????????????????
mov [si],ah ;???????????????????????????

cmp al,0
je .ext2 ;если ничего не ввели



loop @r

mov ax,20 ;???????????????????????????
jmp @f

.ext2:
mov ax,21
@@:


sub ax,cx


ret

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
vuvod:
xor bx,bx
mov cx,ax

;inc cx
.cikl:
push cx
push bx

mov ah,9
mov dx,buf
add dx,bx
int 21h

mov ah,9
mov dx,endl
int 21h


pop bx
pop cx
add bx,100 ;???????????????????????????
loop .cikl

ret;

;;;;;;;;;;;;


Опубликовал Kest May 13 2014 02:28:19 · 0 Комментариев · 2036 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
DiskInfo
Рисование PopupMenu
netBIOS
CodeGear RAD Stud...
Род Стивенс. Delp...
Text effect
Фильтры изображений
PDF
БД студентов
Размещение элемен...
MP3 Архив v.2.0
Паскаль и Дельфи....
Animated Menus
JanComp
IpEditAdress
Фундаментальные а...
Шейдеры в Delphi
Dnavigator
Мониторинг сервер...
CS:Source - монит...

Топ загрузок
Приложение Клие... 100470
Delphi 7 Enterp... 87109
Converter AMR<-... 20078
GPSS World Stud... 12864
Borland C++Buil... 11849
Borland Delphi ... 8607
Turbo Pascal fo... 7039
Visual Studio 2... 4999
Калькулятор [Ис... 4806
FreeSMS v1.3.1 3542
Случайные статьи
Протокол LACP IEEE...
Чип можно заказать...
• Когда домен рабо...
Специализация шабл...
Настройки обсуждения
Контекстная реклама
Изучение системы з...
Теперь мы можем го...
АНИМАЦИЯ OpenGL. В...
Введение в регуляр...
Преобразование типов
Конструктор копии
Получить доступ в ...
Классы и объекты D...
Универсальные пане...
Первое контрольно...
Стереовыход для At...
Правильная настрой...
превышает реальный...
Применение беспров...
Инструкция по сбор...
журналов доступа в...
Описание константы...
компьютеров
Использование кома...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?