Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычисление исполнительного адреса, вопрос арифметики 
:(
    Опции темы
Vovan_Danielyan
  Дата 18.3.2010, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.8.2007
Где: Усть-Лабинск

Репутация: нет
Всего: 1



Решал задачу одну и хочу спросить у знающих людей, правильно ли я все сделал.

Итак одноадресная эвм, с адресацией относительно счетчика команд (содержание счетчика FFF69A). Команда имеет вид: старшие 8 бит - код операции, младшие 12 - смещение. Дана команда 44FA6. Надо вычислить 24-битный исполнительный адрес.

Как решал. Смещение, очевидно, младшие 3 знака команды, то есть: FA6. Чтоб получить исполнительный адрес вычислил FFF69A + FA6 = 1000640, то есть, старший бит не влезает в 24. Я его отбросил и получил ответ: 000640.

Главный вопрос: правильно ли отбрасывать старший бит, если он не влазит, и, вообще, я нигде не ошибся?

Заранее благодарю за помощь, очень нужно правильно решить.

Это сообщение отредактировал(а) Vovan_Danielyan - 18.3.2010, 21:23
PM MAIL   Вверх
Mikl_
Дата 19.3.2010, 04:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 8
Всего: 14



Vovan_Danielyan
мы не знаем что из себя представляет команда  44FA6 то ли сложение, то ли пересылка, то ли логическая команда -- знаем только что старшие 8 бит - код операции, младшие 12 - смещение и всё -- если это не команда перехода, то адрес следующей команды, который окажется в счетчике команд FFF69A+3=FFF69D - 3 байта это длина команды 44FA6 округленная до байтов, но если твоя 44FA6 это команда непосредственного перехода (переход может быть условным, косвенным, безусловным с возвратом и т.д. зависит от извращенности разработчика процессора) и 44 это опкод команды goto а FA6 это смещение -- тогда ход твоего рассуждения правильный FFF69A+FA6=(1)000640 если у твоего процессора не запланирована обработка ситуации "выхода за разрядную сетку адресов"

Это сообщение отредактировал(а) Mikl_ - 19.3.2010, 13:44
PM MAIL   Вверх
Vovan_Danielyan
Дата 19.3.2010, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 4.8.2007
Где: Усть-Лабинск

Репутация: нет
Всего: 1



понятно-понятно, спасибо. 

Собственно, не важно, что окажется в счетчике: я так подумал, что вычислить нужно исполнительный адрес операнда. Я, просто, сжато написал условие, там написано"для адресации операнда в основной памяти используется адресация относительно счетчика команд". Про адресацию команды ничего  не сказано, поэтому я про нее и не вспомнил.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0741 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.