![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
-Shaienn- |
![]()
Сообщение
#1
|
Гость ![]() |
Здравствуйте, есть
программа {в ней} функция, которая работает с массивом и в этой функции я пытаюсь сделать такую вещь: asm т.е на паскале: case d[i] of проблема в том, что я с адреса, полученного командой lea, командой lodsw не получаю число из массива (массив integer), но если пишу на тот же адрес, то в массив все записывается ![]() отдельным куском данный код на ассемблере работает... Где может быть косяк? Могу дать файл программы, но она большая.... Но все равно, может кто поможет. Ассемблер изучаю один день, так что нужна помощь. Сообщение отредактировано: volvo - 10.11.2006 16:49 |
![]() ![]() |
Виталий Шевченко |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
И все же, есть какие-нить нюансы добавления ассемблерных вставок?
Просто, если я ставлю {$R+}, то паскаль пишет Range check error и вылетает.... Без ассемблерной части все работает, так что вывод - косяк в ассемблере. Проверьте плиз. e: array [1..100] of double; d: array [1..100] of integer;
|
Malice |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Асм вставка это часть процедуры ? Приведи полный код, а то мне не понятны такие моменты:
push ss {испортил ds, или прочитал параметр из стека..}Т.е. в прошлый раз комбинация push ds/pop es помогла т.к. в ds уже был загружен (паскалем) нужный сегмент, это не значит, что если ты ее повторяешь, то опять все будет хорошо. Сообщение отредактировано: Malice - 14.11.2006 9:51 |
Виталий Шевченко |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: ![]() ![]() ![]() |
А с чтением ds из ss, когда я ставлю параметр компилирования R+, то адрес, по которому надо читать масссив почему-то находится не в es а в ss.... а в es что-то иное.... если этого параметра не ставлю, то адрес в es нормальный... И если я загружаю разные массивы мне что, не нужно обновлять сегмент памяти? Сообщение отредактировано: volvo - 14.01.2009 0:06 |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 19:52 |