Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10854
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 3992
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 1761
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Assembler (Ассемблер)

Номер выпуска:1544
Дата выхода:12.06.2013, 22:00
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:54 / 20
Вопросов / ответов:1 / 1

Консультация # 187437: Здравствуйте! Прошу помощи в следующем вопросе: Извините если не туда написал, более подходящее не чего не нашёл. Преподователь задал курсовую "Разработать структуру ПРОЦЕССОРА с одномагистральным АЛУ" и нужно сделать структурную схему процессора работы программы умножение. Пример: Эта схема двух магистральная и для выполнения...


Консультация # 187437:

Здравствуйте! Прошу помощи в следующем вопросе:
Извините если не туда написал, более подходящее не чего не нашёл. Преподователь задал курсовую "Разработать структуру ПРОЦЕССОРА с одномагистральным АЛУ" и нужно сделать структурную схему процессора работы программы умножение.
Пример:
Эта схема двух магистральная и для выполнения команды «Пересылка строк».


Вот этой вариант, его заброковали. Сказала, что нужно что - то изменить в РОН, а так же в регистре команд. Ещё нужно по этой схеме рассказать как происходит умножение. В приложение скинул микропрограмму и блок схему


Всем большое спасибо. И извините если не туда написал.
http://rfpro.ru/upload/9399

Дата отправки: 04.06.2013, 21:29
Вопрос задал: Илья (1-й класс)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Модератор):

Здравствуйте, Илья!

Представленная Вами схема процессора с одномагистральным АЛУ практически ничем не отличается от полной схемы процессора.

Если сравнивать обе схемы, то видно, что Регистры общего назначения(РОН) замыкается на магистраль двунаправленной связью, а также между Регистром Команд(РК) и Устройством Управления(УУ) есть ещё и Дешифратор Команды(ДК). Отсутствие ДК ошибкой считать нельзя, т.к. он является составной частью УУ, но есть и такие, кто чтитает его отдельным блоком. Регистр Флагов назван Регистром Признаков.


Код подрограммы:

Код :
mul:	push h	;сохранить используемые регистры
	push d
	XRA	A	;Обнулить аккумулятор
	MOV 	H,A	;H=0
	MOV	L,A	;L=0(HL=0)
	MOV	E,B	;E=B
	MOV	D,A	;D=0(DE=множимому)
	MOV	A,C	;Заносим множитель в аккумулятор
M1:	RRC		;Сдвигаем вправо
JNC	M2;Если младший бит множителя=0, то пропускаем
	DAD	D	;сложения результата со множителем (HL=HL+DE)
M2:	XCHG		;обмениваем пары регистров DE и HL
	DAD	H	;умножаем на 2, сдвигаем влево и т.п.
	XCHG		;обмениваем пары регистров DE и HL
	ORA	A	;проверяем ноль, т.е. устанавливаем флаги
	JNZ	M1	;Продолжаем пока аккумулятор не 0
	PUSH	H	;запоминаем результат
	POP	B
	pop d	;Восстановить регистры
	pop h
	RET		;Выход из подпрограммы.

После дешифрации команды УУ начинает последовательно выполнять определенные микропрограммы.
Каждая микропрограмма выполняется приблизительно за 4-6 тактов процессора без учета тактов ожидания и её можно представить ввиде временных диаграмм.

Названия соответсвуют сигналам процессора при обращении к внешними устройствами. УУ генерирует сигнал М1(чтение Кода Операции - КОП) и заставляет Регистр Адреса(РА) вывести текущий адрес в шину. С помощью сигналов MREQ(запрос памяти) и RD(чтение) внешним устройствам сообщается, что процессор собирается читать КОП. Проверяется сигнал WAIT(Ожидание), если он есть, то генерируется такт ожидания, ес ли нет- чтение КОП в Буфер Данных(БД), только потом полученное значение копируют в РК, запускается ДК и выполняется полученная команда(считываются операнды и т.д.), дальше - УУ генерирует сигнал М1.

Каждый раз, дешифровав команду, назначается источник информации и её приемник(приемники), остальные устройства заблокированы или занимаются своей ранее назначеной задачей, но они не обращаются к шине данных, пока она не освободится. Когда информация будет скопирована, шина данных освобождается.

Подробно остановимся на использованых в подпрограмме командах.
PUSHOCRSPDSWHSPDSWL
XRAOCR----
MOVOCR----
RRCOCR----
J? OCRORDIOP--
DADOCRIOPIOP--
XCHGOCR----
POPOCRSRLSPISRHSPI
RETOCRSRLSPISRHSPI

OCR - operation code read - чтение кода операции;
ORD - operand read - чтение операнда;
IOP - internal CPU-operation - внутренняя операция процессора;
SPD - stack pointer decrement - уменьшение указателя стека;
SPI - stack pointer increment - увеличение указателя стека;
SWH - stack write high byte - запись в стек старшего байта;
SWL - stack write low byte - запись в стек младшего байта;
SRH - stack read high byte - чтение со стека старшего байта;
SRL - stack read low byte - чтение со стека младшего байта;
J? - условный переход.
Расмотрим, что происходит в самом процессоре:
OCR - Значение счетчика команд попадает в буфер адреса, по указаному адресу считывается значение в буфер данных, счетчик команд инкрементируется, а прочитаное значение из буфера, попадает в регистр команд и дешифруется.
ORD пракически ничем не отличается от OCR, кроме того, что прочитаное значение попадает во временный регистр данных, на второй вход АЛУ подается уже увеличеное значение счетчика команд и суммируется, т.е. выполняется внутренняя команда процессора IOP.
SPD/SPI указатель стека уменьшается/увеличивается на 1 и полученое значение отправляется в регистр адреса.
SWH/SWL старший/младший байт регистровой пары отправляется в буфер данных и потом записывается по адресу, который находится в регистре адреса.
SRH/SRL по адресу из регистра адреса считывается значение и помещается в буфер данных, потом его отправляют в РОН в соответсвующий р егистр.

В прикрепленном файле блок-схема и код подпрограммы.

Удачи!

ps:вопросы задавайте в мини -форум.

Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 07.06.2013, 17:36
Прикреплённый файл: посмотреть » [38.0 кб]
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное