Показано с 1 по 15 из 15
  1. #1
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0

    Post Пару вопросов по операндам и т.п.

    Как с помощью полей Req и R/M определяется местонахождение операнда?

    Адрес селектора 0AFF16, адрес смещения 000B16. Определите физический адрес.

    ЗЫ: какойто ужас, нигде литературу не могу найти!


  2. #2
    Standart Power
    Регистрация
    10.10.2003
    Адрес
    Калуга, Россия
    Возраст
    47
    Сообщений
    431
    Поблагодарили
    12
    Поблагодарил
    6
    Может быть, адрес сегмента 0AFF16? У меня тут есть книга Журдена в электронном виде для IBM PC , Intel 8088, Intel 80286, но тоже насчет адресов не очень понятно объяснено. Но как я помню, эта сегментация существует для того, чтобы процессор мог обрабатывать номера ячеек памяти с разрядностью, которая больше, чем разрядность шины данных самого процессора. Поэтому разбиение на сегменты зависит от разрядности шины данных процессора. И получается, что сегмент не может быть больше, чем разрядность шины данных процессора. То есть для процессоров с 16-битными, 20-битными, 32-битными шинами данных, возможно, различные картины ( здесь я не проверял).
    Причем физически на 16-битных процессорах выводы шины данных ( 16 ножек соответственно ) также являются выводами шины адреса в различные моменты времени. Их состояние зависит от состояния шины управления.

    В конкретно Вашем примере у меня получилось 0AFF16+000B16=B0A2C

  3. #3
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0
    Может быть, адрес сегмента 0AFF16?
    Там сам черт ногу сломит! Может и так...
    В конкретно Вашем примере у меня получилось 0AFF16+000B16=B0A2C
    По той литературе которая у меня есть тож так получается, просто сложить два шестнадцатиричных числа... Значит правильно!

    А по местонахождению операнда никто не в курсе? Это самый болезненный вопрос...

  4. #4
    Standart Power
    Регистрация
    10.10.2003
    Адрес
    Калуга, Россия
    Возраст
    47
    Сообщений
    431
    Поблагодарили
    12
    Поблагодарил
    6
    Есть еще один момент: ячейка с нулевым адресом вполне может существовать, так как однозначно определяется низкими или высокими уровнями на всей шине адреса. И в этой ячейке может находиться какая-то информация. Это может быть команда или какие-то данные.
    А вот конкретно операнд, наверно, может, может состоять из нескольких команд. Хотя это уже похоже на процедуру. Я тут уже тоже путаюсь.

  5. #5
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0
    HELP! Нуна очень срочно ответить на этот тупой вопрос, пусть и не совсем правильно...

  6. #6
    Standart Power
    Регистрация
    06.09.2002
    Адрес
    Екатеринбург
    Возраст
    58
    Сообщений
    246
    Поблагодарили
    7
    Поблагодарил
    49
    Вы бы хоть тип процессора назвали...

  7. #7
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0
    Любой тип процессора. И буду благодарен за любую помощь!

  8. #8
    Low Power
    Регистрация
    05.12.2005
    Адрес
    Волжский, Волгоградская обл.
    Возраст
    66
    Сообщений
    59
    Поблагодарили
    1
    Поблагодарил
    0
    :Любой тип процессора.
    Это хороший ответ, но неправильный.
    Типов процессоров куча пойми про какой речь :russian_roulette:
    Но суда по тому, что в вопрсе прозвучали слова селектор и смещение, можно предположить что речь идет об Интеловских процессорах i86 й серии.
    В этих процессорах слова селектор и сегмент это "две большие разницы"
    Слво сегмент применяется при работе процессора в реалльном режиме (real mode) и не может быть больше значения 0xFFFF (потому как такой размер регистра - 16 бит). В этом случае надо вычислять так:
    0x4321 - селектор
    +0x3210 - смещение
    т.е. значение селектора должно быть сдвинуто влево на 4 бита относительно смещения.
    В вопросе же прозвучало слово селектор, это наводит на мысль, что речь идет о защищенном режиме (protected mode) процессора. Кроме того значение селектора так-же не может превышать 0xFFFF, так что речь видимо идет о физическом адресе селектора. Опять же в обычном защищеном режиме размер каждого селектора не может превышать магических 64кБайт (0xFFFF). В то время как в линейном режиме адресов с разбиением памяти в селекторе на страницы размером 4кБайт, размер селектора может быть практически любым.
    Но в любом случае если известен физический адрес селектора и смещения, то физический адрес в памяти вычисляется простым сложением. Так что Вам правильно ответили 0AFF16+000B16=B0A2C и есть место нахождения операнда.

  9. #9
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0
    Ну так... Спасибо! :-)
    Пусть процессор будет 86, так как по полям найти операндор????

  10. #10
    Standart Power
    Регистрация
    10.10.2003
    Адрес
    Калуга, Россия
    Возраст
    47
    Сообщений
    431
    Поблагодарили
    12
    Поблагодарил
    6
    А, может, для начала, что такое поля Req и R/M и откуда такие обозначения?
    Дальше интересней. Я вот сейчас точно не припомню, что такое "операнд". Но помню, что есть в языках программирования высокого уровня понятие "оператор". Например, в Бейсике, оператор "Let" осуществляет присваивание значения переменной и состоит из нескольких команд процессора. На ассемблере, в свою очередь, операторов, насколько я помню, нет, но есть мнемоники команд процессора. Ну и, конечно, непосредственно команда процессора в цифровом виде, которые разные для различных процессоров.
    А вот "операнд" - вроде бы, это данные, которые обрабатывает "оператор". Или я ошибаюсь?

  11. #11
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0
    Если бы я знал, я бы не спрашивал :Р
    Все претензии к преподам в дебильном технаре, которые эти методички разрабатывали!:russian_roulette:
    Я весь нет обрыл ища "не знаю что", нигде и упоминания нет про такие поля, поэтому буду благодарен за любую отсебятину приблизительно по теме.

    Вот сама задача (вопросы ниже мне не нужны, приведены для информации):
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	P4040001.jpg 
Просмотров:	229 
Размер:	110.8 Кб 
ID:	6682  

  12. #12
    Low Power
    Регистрация
    05.12.2005
    Адрес
    Волжский, Волгоградская обл.
    Возраст
    66
    Сообщений
    59
    Поблагодарили
    1
    Поблагодарил
    0
    Ептыть.
    Все мозги людям задрал, а оказывается вопрос о формате команды процессора i8086.
    Такие вопросы только в бурсЕ изучают, чтобы прийдя на производство забыть о них как о страшном сне. Хотя может я ошибаюсь и в вашей бурсЕ учат писАть трансляторы, компиляторы и интерпретаторы. Тогда это круто
    Качай и читай:
    http://lib.mexmat.ru/books/13773
    Првда они дают ссылку на
    http://lib.knackery.net/autumn.php?c...hvFrmh7BEAA%3D
    Хотел тебе выдержки переслать, но неудача.
    Размер ПДФки - 15 мег, а отдают со скоростью 1,4 кБ/сек.
    Это до завтра, а у меня рабочий день через два часа заканчивается, так что...
    Давно это было и сложновато. Помню что это связано с адресацией операндов в памяти. Поля эти (Reg и r/m) содержат по три бита в байте кажись MODr/m. А сам этот байт находится в комаде сразу за байтом кода операции. Ну правда в этом байте есть еще одно поле размером в два бита. Ну и комбинции бит в полях этого байта задают:
    режим адресации, масштабируемость и еще что-то.
    Короче читать надо
    Успехов.

  13. #13
    Без позывного
    Регистрация
    27.03.2007
    Сообщений
    7
    Поблагодарили
    0
    Поблагодарил
    0
    Огромное спасибо!!! Прочитаю и забуду как страшный сон!

  14. #14
    Standart Power
    Регистрация
    06.09.2002
    Адрес
    Екатеринбург
    Возраст
    58
    Сообщений
    246
    Поблагодарили
    7
    Поблагодарил
    49
    Цитата Сообщение от Larry158
    Я вот сейчас точно не припомню, что такое "операнд".
    Понятие "операнд" существует при программировании на ассемблере.

    поле req - ссылка на регистр процессора, а поле R/M - (регистр/память) совместно с битами mod определяют способ адресации.

    Питер Абель. Язык ассемблера для IBM PC и программирования. Перевод с английского Ю.В.Сальникова. Москва, "Высшая школа", 1992

  15. #15
    Standart Power Аватар для UR4QTP
    Регистрация
    23.03.2007
    Адрес
    Мелитополь
    Возраст
    51
    Сообщений
    152
    Поблагодарили
    24
    Поблагодарил
    15
    Описание можно найти в книге =Юров В.И. Ассемблер, 2-е издание, 2004 год=, начиная со страницы 58. В двух словах объяснить трудно.

Похожие темы

  1. Вопросы по приёмнику Полякова
    от RN3AKA в разделе КВ аппаратура
    Ответов: 45
    Последнее сообщение: 15.01.2014, 19:20
  2. Пара вопросов по TS-940S
    от UA1CBM в разделе TS-940
    Ответов: 14
    Последнее сообщение: 25.07.2006, 09:52
  3. Несколько вопросов по APRS
    от UA3IRS в разделе APRS
    Ответов: 3
    Последнее сообщение: 06.03.2006, 22:32
  4. Ищу пару схем...ГЗЧ на 1кГц...
    от Степан Маркелыч в разделе Общие вопросы
    Ответов: 4
    Последнее сообщение: 11.05.2005, 20:33
  5. Хочу подобрать пару транзисторов на выходе усилителя
    от IGOR_97 в разделе Усилители мощности
    Ответов: 6
    Последнее сообщение: 06.07.2004, 13:03

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×
Рейтинг@Mail.ru
eXTReMe Tracker
Яндекс.Метрика