Быстрая сортировка на TASM-е
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Быстрая сортировка на TASM-е - 2007-11-27 18:29:43.903333
|
|
|
maccros
Сообщений: 9
Оценки: 0
Присоединился: 2007-06-19 16:25:00.700000
|
У кого-нибудь есть реализация быстрой сортировки на TASM-е !?
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-11-27 20:02:19.046666
|
|
|
BinZo
Сообщений: 230
Оценки: 0
Присоединился: 2006-12-02 20:29:14.373333
|
Поиском учили пользоваться? Или только вчера и-нет подключили? http://www.algolist.manual.ru/ Примеры в основном на С, но переписать их под тасм не составит труда.
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-11-27 20:11:59.450000
|
|
|
maccros
Сообщений: 9
Оценки: 0
Присоединился: 2007-06-19 16:25:00.700000
|
BinZo, дело в том что я так и поступил! Но что то не так более 3 чисел не сортирует, виснет вот код может кто поможет: quote:
segment sst stack "stack" db 256 dup (?) ends sst segment dst mas db 2,6,1,4,3,7,5,9,8 x db 0 k db 2 i dw 0 j dw 0 l dw 0 r dw 8 ends dst segment cst assume ss:sst,ds:dst,cs:cst begin: mov ax,dst mov ds,ax mov cx,9 xor si,si q1: mov dl,mas[si] add dl,30h mov ah,2 int 21h inc si loop q1 ; go to the next string mov dx,13 mov ah,2 int 21h mov dx,10 mov ah,2 int 21h ; i := l j := r in stack mov ax,l push ax mov ax,r push ax ; begin of the sort ; i := l j := r from stack start: pop ax mov r,ax pop ax mov l,ax mov ax,l mov i,ax mov ax,r mov j,ax ; x := mas[(l+r)/2] mov ax,i add ax,j mov bl,k div bl mov bx,ax mov bh,0 mov dl,mas[bx] mov x,dl ; begin of while-s main: mov bx,i mov al,mas[bx] cmp al,x jl in_m main1: mov bx,j mov al,mas[bx] cmp x,al jl in_mm ; end of while-s ; if i <= j then mov ax,i cmp ax,j jle s_if e_un: mov ax,i cmp ax,j jle main ; end of main sort ; begin of if-s to return to the sort with changed parametrs mov ax,l cmp ax,j jl usl1 ;—————————- mov ax,8 mov r,ax mov ax,i cmp ax,r jl usl2 ; the end of if-s exit: mov cx,9 xor si,si q2: mov dl,mas[si] add dl,30h mov ah,2 int 21h inc si loop q2 mov ah,4ch int 21h ; all links here!!! in_m: mov dx,i inc dx mov i,dx jmp main in_mm: mov dx,j dec dx mov j,dx jmp main1 s_if: mov si,i mov al,mas[si] mov di,j xchg mas[di],al mov mas[si],al mov dx,i inc dx mov i,dx mov dx,j dec dx mov j,dx jmp e_un usl1: mov ax,l push ax mov ax,j push ax jmp start usl2: mov ax,i push ax mov ax,r push ax jmp start ends cst end begin
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-11-27 21:09:46.370000
|
|
|
furiousangel
Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
|
Капец чувак учи лучше win32asm. Я так и не успел выучить номера фунций и прерываний… Вовремя (имхо) перепрыгнул на masm32. И так неохота смотреть эти номера. Если тебе не лень будь добр откоменть возле вызовов функций их параметры.
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-11-27 21:42:34.933333
|
|
|
maccros
Сообщений: 9
Оценки: 0
Присоединился: 2007-06-19 16:25:00.700000
|
Сйчас отредакитирую в предыдущем посте…
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-11-28 15:08:02.263333
|
|
|
furiousangel
Сообщений: 1116
Оценки: 0
Присоединился: 2005-05-28 06:31:47
|
Ну вообщем пришлось мне чуток вспомнить работу с afdpro. Поганял я малость твою прогу. Не знаю как у тебя, а у меня по ходу вообще не работает сортировка. Вначале выводит начальный массив, а потом циклит конкретно. В памяти он не меняется вообще. Даже более того в dx постоянно 32 (это твой первый элемент массива, сразу после add dl,30h ). Досконально смотреть неохота было, да и так есть чем занятся. Но такое предчуствие, будто не перебираются индексы массива, или в dx постоянно заносится только базовый элемент массива. Если не разберешься сам то пиши. Будет время ковырну глубже.
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-11-28 19:50:22.026666
|
|
|
maccros
Сообщений: 9
Оценки: 0
Присоединился: 2007-06-19 16:25:00.700000
|
Всем спасибо за помощь :) Сделал!!! Все работает, работающий вариант выложил в предидущем посте если кому еще понадобится!
|
|
|
RE: Быстрая сортировка на TASM-е - 2007-12-11 10:34:02.303333
|
|
|
crbunny
Сообщений: 223
Оценки: 0
Присоединился: 2006-06-22 21:20:01
|
Эх, опоздал я. Сырец Qsort есть в поставке masm32.
|
|
|
|
|