Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Проблема с loop в asm е   Найти похожие ветки 

 
tasman ©   (2004-05-05 21:33) [0]

Доброго времени суток!
Люди! Помогите, плиз.
Использую Turbo Assembler ver. 2.0 & Turbo Link ver. 3.0
Вот такая программа на ассемблере:

sseg segment para stack "stack"
 db 256 dup (0)
sseg ends

dseg segment
n=5

a dw 4 dup (1,2,3,4,5)

m1 dw 0FFFFh
m2 dw 0FFFFh
m3 dw 0FFFFh

dseg ends

cseg segment
assume cs:cseg,ds:dseg

paste proc far
 cmp ax,m1
 je e_paste     ;a[i]=m1
 jl e1cmp       ;a[i]<m1
 mov dx,m2      ;a[i]>m1  ->  we need to paste a[i] to first place
 mov m3,dx
;  xchg m1,m2
 mov dx,m1
 mov m2,dx
 mov m1,ax
 jmp e_paste
 e1cmp:
 cmp ax,m2
 je e_paste     ;a[i]=m2
 jl e_cmp2      ;a[i]<m2
 mov dx,m2      ;a[i]>m2  ->  we need to paste a[i] to second place
 mov m3,dx
 mov m2,ax
 jmp e_paste
 e_cmp2:
 cmp ax,m3
 jle e_paste   ;a[i]<=m3  we can use jl - because we into the procedure only if a[i]>m3 (jg)
 mov m3,ax
 e_paste:
 retf
endp

main proc far
 push ds
 xor ax,ax
 push ax

 mov ax,dseg
 mov ds,ax

 mov cx,n
 dec cx
 xor bx,bx
;  mov bx,0
lp_1:
  mov ax,a[bx]
  cmp ax,m3
  jle m_s          ;jle <=
  call paste       ;jg >
  m_s:
;   inc bx
;   inc bx
  add bx,2
 loop lp_1  ; !!!!!!В этой строке - (из под фара) выдает, что программа выполнила Некорректную операцию и будет завершена (отлаживаю Turbo Debugger)

main endp
cseg ends

end main

 Может кто знает в чем проблема?


 
tasman ©   (2004-05-05 21:46) [1]

Всем, кто ломал голову - спасибо. Прблема решена. А надо было просто не забывать ставить ret в конце процедуры main :(



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
3-1082709061
Wint_
2004-04-23 12:31
2004.05.23
Как подконнектиться к MySQL базе через ADO?


3-1082783631
__Павел
2004-04-24 09:13
2004.05.23
Данные запроса


14-1083251961
Mr.Credo
2004-04-29 19:19
2004.05.23
ico


14-1083557171
SammIk
2004-05-03 08:06
2004.05.23
Народ, а как вам "Демон" Врубеля?


1-1084274660
DimonNew
2004-05-11 15:24
2004.05.23
qtintf70.dll