Официальный сайт студ.городка НГТУ
Программирование и БД » [asm] Сортировка массива 

#1  21.06.10 19:38

[asm] Сортировка массива

Пример из Юрова, однако выдает ошибку что not enought memory. Либо если через отладчик(td) то там пишет при открытии .exe "program has no symbol table", а при запуске: "terminated, code 0" может где ошибки есть?

Код::

model small
stack 256
.data
mes1 db 0ah,0dh, 'source - $', 0ah, 0dh
mes2 db 0ah, 0dh, 'sorted - ;', 0ah, 0dh
n equ 9
mas dw 2,7,4,0,1,9,3,6,5,8
tmp dw 0
i dw 0
j dw 0
.code
main:
mov ax,@data
mov ds,ax
xor ax,ax
mov ah,09h
lea dx,mes1
int 21h
mov cx,10
mov si,0
show_primary:
mov dx, mas[si]
add dl,30h
mov ah,02h
add si,2
loop show_primary
mov i,0
internal:
mov j,9
jmp cycl_j
excange:
mov bx,i
shl bx,1
mov ax,mas[bx]
mov bx,j
shl bx,1
cmp ax, mas[bx]
jle lesser
mov bx,j
shl bx,1
mov tmp,ax
mov bx,j
shl bx,1
mov ax, mas[bx]
mov bx,j
shl bx,1
mov mas[bx], ax
mov bx,j
shl bx,1
mov ax,tmp
mov mas[bx],ax
lesser:
dec j
cycl_j:
mov ax,j
cmp ax,i
jg excange
inc i
cmp i,n
jl internal
mov ah,09h
lea dx,mes2
int 21h
prepare:
mov cx,10
mov si,0
show:
mov dx,mas[si]
add dl,30h
mov ah,02h
int 21h
add si,2
loop show
exit:
mov ax,4c00h
int 21h
end main

Offline

#2  21.06.10 19:58

Re: [asm] Сортировка массива

Укроп написал(а):

T!nk@ff написал(а):

"program has no symbol table"

при компиляции скажи генерировать файл таблицы символов, а потом при отладке  натравливай так же дебагер на нее

Это не я бляяя...

Offline

#3  21.06.10 20:49

Re: [asm] Сортировка массива

Укроп написал(а):

T!nk@ff написал(а):

"program has no symbol table"

при компиляции скажи генерировать файл таблицы символов, а потом при отладке  натравливай так же дебагер на нее

сделано, теперь при запуске просто пишет "terminated,code 0" через td.exe

а если просто запускать исполняемый файл программы то вот это:

Код::

C:\Users\Don't stop\Desktop\МПТ\80x86>text.exe

source -
sorted - ;
☻


                                                                       ↕
☺▲        И♣m♣Р }♣Fr√R        ☻g   ◄ ▲   ☼ М▲t♦М▲h♦Мгв☻P╗p%Б├hбГ├☼▒♦╙ы┤J !
 ╟♠╜ ► ║wб▒♦╙ъЙ▬  +┬гЬ☻б, ♂└t♠■♠Ъ ы♥гX♦О└┤↓ !■└вб☻а\
3╔Й♫╙!┐╒ Л♫╙!3╥Й6╒! ▲╔ Й♫╙!=  u♥щ╠ =  tKVP=♥ u8Л■Л6╒!;ўt.м:♠╣ tї<  tё:♠l♦u
♠║ t    :♠╗ ы♂РZZщ☺☺ZZщЇ X^Л╨ш╤♦шd№ыУБ>╠!↑!u♥ыuРБ>╠!♀!u♥ы⌂РБ>╠!2777799999

Offline

#4  21.06.10 22:57

$up
Профиль

Re: [asm] Сортировка массива

лень вникать, но сразу бросилось в глаза, чтобы исходный массив печатался в show_primary: между командами
mov ah,02h
add si,2

нужно вставить int 21h

ну а основной косяк здесь:
mes1 db 0ah,0dh, 'source - $', 0ah, 0dh
mes2 db 0ah, 0dh, 'sorted - ;', 0ah, 0dh

строка должна заканчиваться символом $

Исправлено $up (21.06.10 23:14)

Offline

#5  23.06.10 09:12

Re: [asm] Сортировка массива

есть ещё порох... ;)))

Offline

#6  23.06.10 10:21

$up
Профиль

Re: [asm] Сортировка массива

rmir, 8)

Offline

#7  12.09.10 21:27

Re: [asm] Сортировка массива

тема вновь актуальна, сам так и не разобрался, подскажите, почему строка заканчиваться должна $

Offline

#8  12.09.10 22:37

Re: [asm] Сортировка массива

T!nk@ff, ну такой уж придумали терминатор в языке. Ты же не возмущаешься почему в сях типичная строка должна заканчиваться символом '\0'

Offline

#9  12.09.10 22:59

Re: [asm] Сортировка массива

как верный код должен выглядеть?
mes1 db 0ah,0dh, 'source - $', 0ah, 0dh $
mes2 db 0ah, 0dh, 'sorted - ;', 0ah, 0dh $
так пробую ошибку выдает при компиляции.

Offline

#10  12.09.10 23:35

Re: [asm] Сортировка массива

T!nk@ff, под "строка" подразумевается не строка кода в исходнике, а символьная строка (которая в кавычках). Ну как-то так наверное
mes1 db 0ah,0dh, 'source - ', 0ah, 0dh, '$'
mes2 db 0ah, 0dh, 'sorted - ', 0ah, 0dh, '$'

Offline

#11  12.09.10 23:41

Re: [asm] Сортировка массива

Спасибо, вроде заработало, но сортирует кривовато)
source -
2740193658
sorted -
2777799999

Offline

Программирование и БД » [asm] Сортировка массива 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.024 сек.
Выполнено 11 запросов.