программа
{в ней}
функция, которая работает с массивом и в этой функции
я пытаюсь сделать такую вещь:
asm
lea si,d
lodsw
cmp ax,3
je @m
jmp @exit
@m :
push si
lea si,e
lodsw
mov bx,ax
lodsw
mul bx
mov di,si
sub di,4
stosw
mov ax,0
stosw
@exit:
end;
т.е на паскале:
case d[i] of
3: begin e[i]:=e[i]*e[i+1];
e[i+1]:=0; end;
end;
проблема в том, что я с адреса, полученного командой lea, командой lodsw не получаю число из массива (массив integer), но если пишу на тот же адрес, то в массив все записывается

отдельным куском данный код на ассемблере работает... Где может быть косяк?
Могу дать файл программы, но она большая.... Но все равно, может кто поможет.
Ассемблер изучаю один день, так что нужна помощь.
Сообщение отредактировано: volvo -