IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Не могу получить адрес массива :(
-Shaienn-
сообщение 10.11.2006 16:34
Сообщение #1


Гость






Здравствуйте, есть

программа

{в ней}

функция, которая работает с массивом и в этой функции
я пытаюсь сделать такую вещь:

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), но если пишу на тот же адрес, то в массив все записывается nea.gif

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

Сообщение отредактировано: volvo - 10.11.2006 16:49
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-Shaienn-   Не могу получить адрес массива :(   10.11.2006 16:34
-Shaienn-   d: array [1..100] of integer e: array [1..100] of ...   10.11.2006 16:51
volvo   Только присоедини его к сообщению, а не копируй те...   10.11.2006 16:51
Виталий Шевченко   Так и не смог я под своим нормальным именем зареги...   10.11.2006 17:11
Malice   проблема в том, что я с адреса, полученного коман...   10.11.2006 17:32
Виталий Шевченко   Возможно это из-за того, что stosw пишет по ES:DI...   10.11.2006 18:17
Malice   А как сегменты организовать одинаково? asm pus...   10.11.2006 20:11
Виталий Шевченко   asm push ds {Запомним ds, вдруг он паскалю ну...   10.11.2006 20:38
Виталий Шевченко   а можно еще вопрос, как мне из real массива вытащи...   10.11.2006 20:59
Malice   а можно еще вопрос, как мне из real массива вытащ...   11.11.2006 10:35
Виталий Шевченко   Думаю его надо сначала преобразовать из REAL в DO...   11.11.2006 15:25
FreeMan   хм. практически все :) во первых - сам написал, чт...   11.11.2006 20:43
Виталий Шевченко   я вас, наверное, уже достал глупыми вопросами, но ...   12.11.2006 6:38
Виталий Шевченко   Написал я ассемблерную часть, но криво, у меня пас...   12.11.2006 10:04
FreeMan   Ну сначала asm lea di,s mov cx,100 mov ax,0 rep st...   12.11.2006 11:39
Виталий Шевченко   И все же, есть какие-нить нюансы добавления ассемб...   13.11.2006 18:36
Malice   Асм вставка это часть процедуры ? Приведи полный к...   14.11.2006 9:49
Виталий Шевченко   { в функцию передается значение переменной x, с...   14.11.2006 17:36
FreeMan   ты вот всякою фигню с ds, es мутишь, а восстанавли...   14.11.2006 22:00


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 10:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"