|
|
|
MASM ... Помогите, слежу в отладчике за регистрами, но понять не могу...
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Помогите пожалуйста, в данный момент читаю статьи Калашникова, и соответственно изучаю файлы, которые прилагаются к ним. Но не могу понять одной вещи, после перемещения программы в другой сегмент (в данном случае сегмент 7-ой видеостраницы) с помощью команды movs, установлена ссылка типа: jmp dword ptr cs:[off_move] , где off_move смещение команды, на которую прыгаем, а cs соответственно сегмент в который прыгаем... Так вот, но до выполнения этой команды регистр cs указывает на сегмент в котором я нахожусь сейчас, и потому, как я понимаю, прыжок должен быть произведён в пределах данного сегмента, но этого не происходит, и процессор начинает выполнять команды уже в сегменте 7-ой видеостраницы... И таким же образом производится прыжок назад: jmp dword ptr cs:[off_return] , где off_return = смещение байта, на который надо вернуться, а cs = сегмент для возврата... Но опять же до выполнения данной команды в cs содержиться адрес сегмента 7-ой видеостраницы, а прыжок выполняется в тот сегмент, с которого всё начиналось. Обьясните пожалуйста, как это работает? Заранее благодарен. P.S. Просто в той статье обьяснений этому не даётся, там просто сказано проследить за происходящим в отладчике, что я и сделал )) Но ответа в отладчике на свой вопрос не получил (возможно из-за того, что новичёк полный, и потому за чем-то не уследил). Буду благодарен любой помощи и ссылкам на статьи по данным темам :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 03:14 |
|
||
|
MASM ... Помогите, слежу в отладчике за регистрами, но понять не могу...
|
|||
|---|---|---|---|
|
#18+
Неправильно рассуждаете. В cs:[offset] - содержится некий адрес перехода. Адрес 32-битный, на это указывает dword ptr . Процессор берет и прыгает на этот адрес - соотетственно в cs будет значение сегмента, которое указано в целевом адресе - а там сегмент 7-ой видеостраницы. В отладчике посмотрите на двойное слово по адресу cs:[off]. ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2008, 09:44 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1345373]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
12ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 528ms |

| 0 / 0 |
