помогите решить задачу или просто киньте решение пожалуста или найдите ошибку у меня
в массиве переставить положительные элементы в обратном порядке
мой вариант решения - мож кто найдет ошибки
data segment
x dw 1,2,3,-9,-8,0,5,-6,4,5
nx dw 10
y dw 1,2,3,5,-5,0,6
ny dw 7
r dw ?
data ends
stack segment
stack ends
code SEGMENT
assume ds:data,cs:code,ss:stack
start:
mov ax,data
mov ds,ax
lea bx,x
mov di,nx
dec di
add di,di
call procedure1
lea bx,y
mov di,ny
dec di
add di,di
call procedure1
procedure1 proc near
c1:
cmp si,di
jnl m11
m1:
cmp [bx+si],0
jng m22
m2:
cmp [bx+di],0
jng m33
m3:
push cx
mov ax,[bx+si]
mov cx,[bx+di]
mov r,ax
mov ax,cx
mov cx,r
pop cx
sub cx,2
add si,2
sub di,2
jmp m11
m22:
add si,2
dec bx
jmp m11
m33:
sub di,2
dec bx
m11:
loop c1
ret
procedure1 endp
mov ah,4ch
int 21h
code ends
end start
нужно вначале в регистр mov cx,nx
mov di,cx и т.д. так как loop должен работать с cx
С удовольствием помогу, т.к. люблю асм, но при том условии, что будет указан компилятор, и отформатирован код. А если вы еще и комментраии соизволите добавить... Потому, как ломать глаза о кашу из сплошного Си-шного кода я иногда решаюсь, а вот каша из асма... берегу глаза.