Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Вычисление исполнительного адреса


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

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

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

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

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

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

Автор: Vovan_Danielyan 19.3.2010, 11:35
понятно-понятно, спасибо. 

Собственно, не важно, что окажется в счетчике: я так подумал, что вычислить нужно исполнительный адрес операнда. Я, просто, сжато написал условие, там написано"для адресации операнда в основной памяти используется адресация относительно счетчика команд". Про адресацию команды ничего  не сказано, поэтому я про нее и не вспомнил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)