Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 784
от 20.06.2007, 06:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 381, Экспертов: 32
В номере:Вопросов: 1, Ответов: 2


Вопрос № 91347: ДОБРЫЙ ДЕНЬ!! В приложении текст программы с рассыки "Ассемблер? Это просто! Учимься программировать", выпуск13. Я в ней вообще ничего понять не могу(( Пожалуйста, если вам не сложно, объясните мне: если, например, mov ax,12...

Вопрос № 91.347
ДОБРЫЙ ДЕНЬ!!
В приложении текст программы с рассыки "Ассемблер? Это просто! Учимься программировать", выпуск13. Я в ней вообще ничего понять не могу((
Пожалуйста, если вам не сложно, объясните мне:
если, например,
mov ax,1234h
mov bx,0110h
jmp ax:[bx] (или ax:bx ...)
ТОгда jmp "прыгнет" на "1234h:0110h"
Но в тексте программы есть
jmp dword ptr cs:[Off_return] .
Я не понимаю, зачем dword ptr , а не jmp cs:[Off_return]...(( не могли бы Вы чуть поподробнее оьяснить?
Всего наилучшего! Удачи!

Приложение:

Отправлен: 14.06.2007, 10:20
Вопрос задал: Покритюк Виталий Леонидович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 9)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Покритюк Виталий Леонидович!

Команда дальний перход
jmp dword ptr cs:[Off_return]
т.е. из переменной Off_return в памяти берутся сразу CS и IP префикс CS: указывает откуда брать данные по умолчанию используется DS
команда ближний переход
jmp cs:[Off_return]
из памяти будет взято только IP.
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 14.06.2007, 10:49
Оценка за ответ: 4

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Покритюк Виталий Леонидович!
Для начала замечу, что запись jmp ax:[bx] некорректна, потому что в формировании
адреса (скажем так, старшей его части) может учавствовать только сегментный регистр (DS, ES, CS, SS).
Т.е. правильно будет, например jmp cs:[bx]
Теперь по сути вопроса:
Переходы могут как внутри сегмента, так и со сменой сегмента.
Что произойдет, если дадим команду jmp cs:[off_return]?
Будет переход на ближний адрес, хранящийся в слове cs:off_return в том же сегменте.
Что поменяется для команды jmp dword ptr cs:[Off_return]?
Будет осуществлен переход на длинный адрес (DWORD PTR!), хранящийся в двойном слове cs:[Off_return] (смещение+сегмент).
Т.е. будет переход на адрес в другом сегменте! Что и необходимо для данной программы...

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 14.06.2007, 10:54
Оценка за ответ: 5
Комментарий оценки:
Ой, а я уже не помню, сколько сегмент имеет смещений?
Ну я, что-то понял... ...
а что если не jmp cs:[off_return] а jmp cs:off_return (без квадратных скобок).
БОЛЬШОЕ ВАМ СПАСИБО! Хорошо, что хоть кто-то может помочь.... я не знаю, что бы делал сам...
УДАЧИ!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное