Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2010, 12:46   #1
Настенька..Блонди
Пользователь
 
Регистрация: 25.12.2008
Сообщений: 37
По умолчанию одномерный массив ( исправить )

создать одномерный массив по возрастанию!
эта программа работает правильно... только мне мужно сделать её без стека!!

title qwert
assume cs:c,ds,ss:s
s segment stack ;
dw 128 dup(?)
s ends

d segment ;
X dw 10 dup (?) ;
B dw 10 dup (?) ;
N dw 0
A dw 100 dup(?)
msg db 'massiv=$' ;

cr = 0dh ;
lf = 0ah
string db 255, 0, 255 dup (?)
errmsg db 'error: illegal symbol'
crlf db cr,lf,'$'
negflag dw ?

d ends

c segment ;
IntegerOut proc ;
xor cx,cx
mov bx,10
cmp ax,0
jge m
neg ax
push ax
mov ah,6
mov dl,'-'
int 21h
pop ax
m:
inc cx
xor dx,dx
div bx
push dx
or ax,ax
jnz m
m1:
pop dx
add dx,'0'
mov ah,6
int 21h
loop m1
IntegerOut endp

IntegerIn proc ;
mov ah,0ah
lea dx,string
int 21h
xor ax,ax
lea si,string+2
mov negflag,ax
cmp byte ptr [si],'-'
jne m2
not negflag
inc si
jmp m3
m2:
cmp byte ptr [si],'+'
jne m3
inc si
m3:
cmp byte ptr [si],cr
je ex1
cmp byte ptr [si],'0'
jb er
cmp byte ptr [si],'9'
ja er
mov bx,10
mul bx
sub byte ptr [si],'0'
add al,[si]
adc ah,0
inc si
jmp m3
er:
lea dx,errmsg
mov ah,9
int 21h
jmp IntegerIn
ex1:
cmp negflag,0
je ex
neg ax
ex:
push ax
mov ah,9
lea dx,crlf
int 21h
pop ax
ret
IntegerIn endp

start:
mov Ax,d
mov Ds,Ax
mov Ah,9
lea Dx,MSG
int 21h
call IntegerIN
mov N,Ax
mov Cx,N
xor Si,Si
K:
push Cx
push Si
call IntegerIN
pop Si
pop Cx
mov A[Si],Ax
add Si,2
loop K

mov cx, N
lea di, A
next:
push cx
mov ax, N
sub ax, cx
shl ax, 1
lea si, A
add si, ax
mov ax, word ptr [di]
next2:
mov dx, word ptr [si]
cmp dx, ax
jnl next3
mov word ptr [si], ax
mov word ptr [di], dx
mov ax, dx
next3:
add si, 2
loop next2
add di, 2
pop cx
loop next

exit:
mov Cx,N
xor Si,Si ; Очистка регистра
K2:
push Cx
push Si
mov Ax, A[Si]
call IntegerOut;
pop Si
pop Cx
add Si,2
loop K2

mov Ah,4ch;
int 21h

c ends
end start
Настенька..Блонди вне форума Ответить с цитированием
Старый 23.01.2010, 13:19   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Настенька..Блонди
При оформлении темы используй теги "код" (#)
Цитата:
эта программа работает правильно... только мне мужно сделать её без стека!!
В чем проблемы? Вместо
Код:
assume cs:c,ds,ss:s
s segment stack ; 
dw 128 dup(?)
s ends
d segment
напиши
Код:
assume cs:c,ds:d
d segment ;

Последний раз редактировалось Mikl___; 23.01.2010 в 13:22.
Mikl___ вне форума Ответить с цитированием
Старый 23.01.2010, 16:09   #3
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

может нужно просто com программу?
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru

Последний раз редактировалось airyashov; 23.01.2010 в 16:12.
airyashov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив Алиночка))) Фриланс 12 25.01.2010 15:00
Одномерный массив! в С++ Jereme Помощь студентам 1 14.01.2010 22:55
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
одномерный массив curly182 Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2009 15:01