Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx53 / ПЗ (2).docx
Скачиваний:
52
Добавлен:
01.08.2013
Размер:
293.08 Кб
Скачать

5.11 Алгоритм выполнения операции чтения из озу

Выполнение операции чтения из ЗУ происходит по алгоритму, показанному на рисунке приложения 10.2. Вначале определяем тип формата команды, если AS, то одним операндом будет поле ячейки памяти S , далее определим тип адресации этого операнда. Если адресация прямая адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка памяти, и данные из этой ячейки считываются на ШД. Так как ОЗУ 8-разрядное, то считывание происходит в два этапа, сначала записываем в РгД младшие биты и отправляем их на ШД, затем 3 старших. Далее аналогичным образом копируем их в буферный регистр RgBuf, начиная с младших разрядов. И от туда пересылаем в РгА. При относительной адресации на шину адреса выставляется сумма значений адресов из кода команды и регистра базы RB.

Для формата команды «регистр-регистр» сначала из кода команды номер регистра, в котором хранится адрес операнда. Этот номер выставляем на ША, далее на ШД записываем адрес, хранящийся в этом регистре. Оттуда отправляем его в РгД, затем в RgBuff и, наконец, в регистр адреса. Это процедура происходит в два этапа, т.к. РгД и RgBuff 8-ми разрядные, а РгА 11-ти. Определяем тип адресации. При косвенной адресации из ОЗУ по адресу хранимому на ША считываем адрес ячейки памяти, в которой хранится операнд. Считывание адреса происходит в 2 этапа, сначала считываются младшие 8 бит, затем старшие 3. Адрес с шины даных передаем через буферный регистр в регистр адреса аналогичным образом в два этапа. При относительной адресации в регистр адреса выставляется сумма значений адресов из регистра адреса и регистра базы B.

Далее, считываем на ШД данные из ОЗУ, начиная с выставленного на ША адреса. С шины данных информацию сохраняем или в аккумуляторе А, или в регистре Р.

6 Разработка алгоритмов выполнения арифметических и логических операций

Арифметико-логическое устройство должно реализовать выполнение алгоритмов следующих операций:

  • сложение;

  • вычитание;

  • умножение;

  • деление;

  • конъюнкция;

  • дизъюнкция;

  • сложение по модулю 2.

Входные операнды в АЛУ размещаются в 32-разрядных регистров PA, PB, РD, РE. Результат операции помещается в аккумулятор А или в регистр Р.

В АЛУ формируются флаги, соответствующие переполнению разрядной сетки (флаг OF), признаку знакового результата (SF), признаку нулевого результата (ZF). Числа представляются в прямом коде. Отрицательные числа представляются в дополнительном коде.

Заданная в варианте адресность 2 означает, что мы должны в АЛУ передавать два операнда одновременно, это упрощает процесс и организацию передачи операндов в АЛУ, т.е. позволяет считывать данные сразу с двух регистров.

6.1 Алгоритм выполнения операций сложения и вычитания

Операции сложения и вычитания в алгоритме (рисунок приложения 11.1) выполняются одинаково. Отличие состоит в том, что при вычитании операнд, хранящийся в регистре РВ, преобразуется в дополнительный код. Затем происходит сложение содержимого регистров РА и РВ с помещением результата в A или в Р в зависимости от формата команды.

Если после выполнения операции получился отрицательный результат, нужно преобразовать его, проинвертировав и прибавив единицу. Флаг переполнения равен сумме по модулю 2 знакового и предшествующего ему разрядов результата. Флаг знака – знаковый разряд результата. Флаг нуля – признак равенства результата нулю.

Соседние файлы в папке docx53