![]() |
|
![]() ![]() ![]() |
|
Merlin27 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
В продолжение темы о передаче управления др. программе....
Пишу значит
Вот возника проблемка: "mov [KSP],sp" не работает. В дебаггере после команды "mov ss,ax" указатель следующей команды перескакивает через "mov [KSP],sp". Кроме того после команды "mov ss,ax" засоряется часть самого стека по новому смещению, чтото около 20 верхних байт стека. Проясните что такого особенного в этом "mov ss,ax". И как мне нормально сохранить/восстановить SP. Возникла идея поставить после "mov ss,ax" NOP, но это както некрасиво ![]() Это сообщение отредактировал(а) Merlin27 - 4.11.2006, 21:54 |
|||
|
||||
Merlin27 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Провел пару тестов... несмотря на непонятки вроде все работает правильно. Может эти чудеса со стеком связаны с работой самого дебаггера?
|
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 4 Всего: 158 |
после записи в ss происходит "потеря отладочного прерывания" (не помню уже, чем это объясняется). так что в твоем случае все работает правильно, и добавление nop'а действительно помогло бы "прошагать" по mov [ksp],sp...
![]() |
|||
|
||||
Merlin27 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Проследил я за стеком в отладчике... Короче как я понял сам TD хранит там свои данные. Когда происходит push он отодвигает свои данные вверх, pop - наоборот... Видимо перехватывает команды замены сегмента стека и создается иллюзия что перскакивает следующую команду. Но на самом деле все нормально работает, следующая команда тоже выполняется вместе с предыдущей, правда только за одно нажатие F7 - вот и насторожило меня это
![]() |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 4 Всего: 158 |
||||
|
||||
Dude03 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
Вообще при установке сегментных регистров(cs, ss) стоит отменять прерывание(cli) и потом восстанавливать(sti).
Это сообщение отредактировал(а) Dude03 - 5.11.2006, 18:16 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |