Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2011, 09:24   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию Адресация и получение данных в микропроцессоре

Начинаю с того, что память с ячейками длиной в 8 бит должна иметь две шины, первая выбирает адрес ячейки, а вторая записывает туда число. Тогда МП должен давать адрес и получать значение одновременно. Это можно сделать с помощью промежуточного элемента памяти, как я понял - это буфер, то есть я могу написать mov адрес,число_8_бит, и в память это правильно запишется? а как тогда происходит вывод чисел? Ножек всего 20 у МП, так сначала число, потом адрес в памяти?
Теперь другая задача, допустим, что я ориентируюсь немного в раздельной и совмещенной адресации. У меня она совмещенная и я использую пару выходов МП А0-А20 под выбор внешней микросхемы. Если я тут напишу mov адрес, число, это уже тавтология какая-то получится. Мне надо здесь просто подать, например, на 4 последние выхода число 8. Как это делается правильно, что я перепутал?
Krasi вне форума Ответить с цитированием
Старый 16.10.2011, 10:48   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
что я перепутал?
Практически всё. Для чтения/записи памяти требыються не две магистрали, а три.
Магистраль адреса (МА), магистраль данных (МД) и магистраль управления (МУ).
Архитектура разных процессоров может иметь раздельные и мультиплексированные магистрали. Современные микропроцессоры имеют, в основном, мультиплексированные магистрали. Исключение составляет магистраль управления. Её сигналы и управляют всей логикой работы компьютера.
Например, нам надо записать в ячейку некое числ. Что происходит на магистралях.
Получив и расшифровав код команды, процессор выдаёт на общую магистраль адрес ячейки.
На МУ появляется сигнал, сообщающий внешним устройствам, что на магистрали - адрес. Этот адрес, записывается в регистры адреса.
На следующем такте, на магистраль выдаются данные.
Сигнал адреса снимается, формируются сигналы RD/WR и данные записываются (читаются) в память.
Если на МУ, наряду с этими сигналами, появится сигнал выбора внешних устройств, запись/чтение произойдёт из внешнего устройства.
Вот, примерно так.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 16.10.2011, 13:18   #3
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

А я примерно так и понял. Хотя не очень логично выглядит управление с помощью неиспользуемых битов из имеющихся А0...А19. Или как тогда осуществляется управление? Ну или что представляет собой МУ и откуда она берет сигналы.
Но тогда первый код выглядит правильно: mov адрес, слово. Единственное, что адресация при этом должна быть раздельная, а при совмещенной все ноги будут задействованы под адрес и не знаю, как будет осуществляться управление.
А про второй тогда так и не понял. Слово и адрес одинаковы? Ну давайте рассмотрим архитектуру конкретнее, если не получится так объяснить.
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с АЦП в микропроцессоре ATmega16 ezhik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.02.2011 17:12
Информация о микропроцессоре Assembler bookkc Помощь студентам 0 27.11.2010 19:23
Адресация данных при открытии файла PSergeyV Общие вопросы Delphi 3 14.05.2010 00:25
получение данных avis Win Api 0 19.12.2009 19:24
Получение данных с БД. urgu_st SQL, базы данных 5 13.01.2009 15:11