1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
| -Shaienn- |
10.11.2006 16:34
Сообщение
#1
|
|
Гость |
Здравствуйте, есть
программа {в ней} функция, которая работает с массивом и в этой функции я пытаюсь сделать такую вещь: asm т.е на паскале: case d[i] of проблема в том, что я с адреса, полученного командой lea, командой lodsw не получаю число из массива (массив integer), но если пишу на тот же адрес, то в массив все записывается отдельным куском данный код на ассемблере работает... Где может быть косяк? Могу дать файл программы, но она большая.... Но все равно, может кто поможет. Ассемблер изучаю один день, так что нужна помощь. Сообщение отредактировано: volvo - 10.11.2006 16:49 |
![]() ![]() |
| Malice |
10.11.2006 17:32
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
проблема в том, что я с адреса, полученного командой lea, командой lodsw не получаю число из массива (массив integer), но если пишу на тот же адрес, то в массив все записывается Возможно это из-за того, что stosw пишет по ES:DI, а lodsw c DS:SI, а у тебя в этот момент сегменты разные. |
| Виталий Шевченко |
10.11.2006 18:17
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Возможно это из-за того, что stosw пишет по ES:DI, а lodsw c DS:SI, а у тебя в этот момент сегменты разные. А как сегменты организовать одинаково? А то я думал, что получаю смещение и дальше не важно читаю, пишу ли... прикрепил программку, данный код отдельным куском... все работает Сообщение отредактировано: Виталий Шевченко - 10.11.2006 18:19 Прикрепленные файлы
AS3.PAS ( 298 байт )
Кол-во скачиваний: 232 |
-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
А как сегменты организовать одинаково?
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![]() ![]() |
|
Текстовая версия | 8.12.2025 15:15 |