Вопрос № 101118: Имеется адрес 0001:0003 смещение 0003 указывает на конкретный байт, адрес 0001 - это 16 разрядный адрес потому что в HEX один знак 4 бинарных тобишь 0 - 4 0 - 4 0 - 4 1 - 4. 4 по 4 значит 16 бит, или 4 в хексе. Правильно я рассуждаю?...
Вопрос № 101.118
Имеется адрес 0001:0003 смещение 0003 указывает на конкретный байт, адрес 0001 - это 16 разрядный адрес потому что в HEX один знак 4 бинарных тобишь 0 - 4 0 - 4 0 - 4 1 - 4. 4 по 4 значит 16 бит, или 4 в хексе. Правильно я рассуждаю?
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Artyom Zaitsev!
Неправильно.
Адрес 0001:0003 означает несколько другое.
Адреса в реальном режиме процессора 20-битные, а регистры 16-битные.
Чтобы сформировать 20-битный адрес и придумали этот "хитрый" способ.
Значение сегмента (0001h в нашем случае) необходимо умножить на 10h (или,
что то же самое - добавить справа шестнадцатиричный 0)
и полученную величину сложить со смещением.
Т.е. 0001h * 10h + 0003h = 00013h
Надо заметить, что один и тот же 20-битный адрес может быть представлен
разными наборами сегмент:смещение
Например: 0123h:0011h = 0124h:0001h = 01241h
И еще: сегмент определяет(когда умножим на 10h) 20-битный адрес начала
64к памяти (только 64к могут адресоваться 16-битным адресом).
А смещение - адрес, начиная с начала сегмента.
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 07.09.2007, 10:08
Отправить вопрос экспертам этой рассылки
Приложение (если необходимо):
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.