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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 1069
от 23.09.2008, 22:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 144306: Здравствуйте, уважаемые эксперты! 1. Помогите с написанием длинного (межсегментного) перехода регистра CS. Меня интересуют способы, приёмы изменения этого сегмента. Если написать: mov ax,0BF00h mov es,ax то сегментный регистр es будет...

Вопрос № 144.306
Здравствуйте, уважаемые эксперты!
1. Помогите с написанием длинного (межсегментного) перехода регистра CS. Меня интересуют способы, приёмы изменения этого сегмента. Если написать:
mov ax,0BF00h
mov es,ax
то сегментный регистр es будет равен 0BF00h. Этим же приёмом можно изменить и другие сегментные регистры: ds и ss, но только не cs! Отладчик напишет: Invalid opcode. Странно, про другие регистры не пишет, а про cs пишет. Неужели всё дело в том, что cs вместе с ip указывает на адрес текущей команды.
2. Я знаю только один способ изменения cs, вот такой:
jmp dword ptr cs:[x]
int 20h
x dd '1234'
Но опять непонятно, почему CS меняется на 3132, ведь я прописал сегмент 12, а смещение 34. В отладчике эта команда пишется: jmp FAR cs:[107], а по адресу 107 - 10А находятся числа 34 33 32 31. Откуда тройки-то взялись?
Заранее спасибо.
Отправлен: 18.09.2008, 15:24
Вопрос задал: Aistesis (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

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

1)
Да это особенный регистр вместе IP он указывает на адрес следующей исполняемой команды.
Вы не втретите команд типа MOV CS,RR или POP CS , хотя PUSH CS есть. Также как IP его можно изменить только косвенно, командами переходов, вызовами подпрограмм и возвратами из них.

2)
Все правильно Вы записываете строку символов, а это не числа. Если посмтрите на кодовую таблицу символов,то увидете, что "0"=30h, "1"=31h, "2"=32h и т.д.
Вот и всё, спрашивайте в мини-форуме.
Удачи!
---------
Итерация от человека, рекурсия — от Бога (Питер Дойч)
Ответ отправил: Зенченко Константин Николаевич (статус: Профессор)
Украина, Киев
Тел.: +380979536619
Адрес: Украина г.Киев
----
Ответ отправлен: 18.09.2008, 15:47
Оценка за ответ: 5


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное