Навигация
Главная
Поиск
Форум
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
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

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

Моделирование процесса обеспечивающего надежность функционирования АСУ Т...
База данных электронного документооборота на Delphi + бд Intebase
Метод половинного деления для нахождения корня уровнения на Turbo Pascal...

Сортировка
Осуществить сортировку нескольких сторок методом вставки в алфавитном порядке. каждая строка не превышает 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 12 2014 22:28:19 · 0 Комментариев · 3260 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Защита от спама ...
PHP5. Профессиона...
Анекдоты с ostrie.ru
Алгоритм трассиро...
PHP 5 на примерах
Иллюстрированный ...
RAS
FreeNet
Моделирование дви...
Win-Prolog 3.618
Основы Delphi
Пример работы с ф...
C# в кратком изло...
Просмотр файлов и...
Еext Editor
Создание Web-сайт...
UmEdit
DateEdit
ICQ
DiZsubmit

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97833
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10291
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Построение Windows...
Где мы находимся?
Сколько еще будет ...
Работа асинхронног...
Разработка чужими ...
• доступ к архивны...
Закругленные уголк...
Преобразования XSLT
Юридическая консул...
Упорядоченный дина...
Эта форма имет про...
Результаты работы...
Соотношение между ...
Занятие 1. Обеспеч...
Протоколы и интерф...
"Jj Issued certifi...
Открытие файла
Модификации устрой...
Эффект зеркального...
Подробнее о внедре...
Системные включаем...
Охранная сигнализа...
УНАСЛЕДОВАТЬ, ВКЛЮ...
Стандарт RS-449
Добыча целевого тр...
Статистика



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


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