Метода для лабораторных работ по интерфейсам (Архитектура ЭВМ_ЛР)

Посмотреть архив целиком

6



Архитектура ЭВМ.

Лабораторные работы.


Введение.

Для выполнения лабораторных работ будет использована программная модель ЭВМ, которая была разработана Жемакиным А.П.[1]. Эта модель позволяет реализовать доступ к различным элементам ЭВМ. На рис.1 представлено главное окно этой программы.

р
ис.1


Окно Процессор обеспечивает доступ ко всем регистрам и флагам процессора.

Программно-доступные регистры и флаги:

  • Acc – аккумулятор;

  • PC – счетчик адреса текущей команды;

  • SP – указатель стека;

  • RB – регистр базового адреса;

  • RA – регистр адреса, содержащий исполнительный адрес при косьвенной адресации;

  • IR – входной регистр;

  • OR – выходной регистр;

  • I - флаг разрешения прерываний.

Системные регистры и флаги:

  • DR – регистр данных АЛУ, содержащий второй операнд;

  • MDR – регистр данных ОЗУ;

  • MAR – регистр адреса ОЗУ;

  • RDR – регистр данных блока РОН;

  • RAR – регистр адреса блока РОН;

  • CR – регистр команд, содержащий поля:

    • COP – код операции;

    • TA - тип адресации

    • ADR – адрес или непосредственный операнд.

  • Z – флаг нулевого значения Acc;

  • S – флаг отрицательного значения Acc;

  • OV – флаг переплнения

Кнопка R (Reset) устанавливает все регистры в начальное (нулевое) значение.

Окно Текст программы представляет собой окно текстового редактора, в котором можно редактировать тексты программ, загужать в него текстовые файлы и сохранять подготовленный текст в виде файла.

В этом окне присутствует кнопка Компилировать, которая запускает процедуру ассемблирования текста программы. При обнаружении синтаксических ошибок информация о них выводится в окно Сообщения.

Внимание! Откомпилированная программа размещается, начиная с адреса 000. Данные надо располагать в памяти так, чтобы они не пересекались с кодом программы.


Рис.2

Выполнение программы осуществляется нажатием на кнопку Пуск. На рис.2 представлены результаты выполнения программы сложения чисел 5 и 7, которые располагаются в ячейках памяти с адресами 070 и 071. Результат выполнения программы, число 12 записывается в ячейку ОП с адресом 072. Описание этой программы содержится в таблице 1.

Таблица1.

Адрес

Команда

Комментарий

000

rd 070

Загрузка в аккумулятор первого числа.

001

wr R1

Запись первого числа в регистр R1

002

rd 071

Загрузка в аккумулятор второго числа

003

add r1

Сложение чисел, результат в аккумуляторе

004

wr 072

Запись результата в ОЗУ

005

hlt

Стоп


Таблица 2. Система команд.

№п/п

Мнемокод

Название

00

NOP

Пустая операция

01

IN

Ввод

02

OUT

Вывод

03

RET

Возврат из подпрограммы

04

HLT

Стоп

05

JMP

Безусловный переход

06

JZ

Переход, если 0.

07

JNZ

Переход, если не 0

08

JS

Переход, если отрицательно

09

JNS

Переход, если положительно

10

JO

Переход, если переполнение

11

JNO

Переход, если нет переполнения

12

CALL

Вызов п/п

13

RD

Чтение (в аккумулятор)

14

WR

Запись (из аккумулятора)

15

ADD

Сложение

16

SUB

Вычитание

17

MUL

Умножение

18

DIV

Деление

19

ADI

Сложение с данными

20

SBI

Вычитание с данными

21

MULI

Умножение с данными

22

DIVI

Деление с данными

23

MOV

Пересылка R1← R2


Таблица 3. Типы адресации

Обозначение

Код

Тип адресации

Пример


0

Прямая (регистровая)

ADD 23 (ADD R3)

#

1

Непосредственная

ADD #33

@

2

Косвенная

ADD @33

@R

3

Косвенно - регистровая

ADD @R3


Задание 1.

Ввести в окно Текст программы, программу представленную в таблице 1. Выполнить ее, проанализировать полученные результаты.


Программирование разветвляющихся процессов.


Для реализации алгоритмов, пути выполнения которых зависят от исходных данных, используются команды условной передачи управления. В качестве примера рассмотрим программу вычисления функции.


Y={

(x-11)2-125 при х>=16

x2+72x-680 при х<16



Адрес

Команда

Примечание

000

IN

Ввод х

001

WR 30

Запись х в ячейку 30

002

SUB #16

Сравнение х с границей (16)

003

JS 010

Переход по отрицательной разности

004

RD 30

Загрузка в аккумулятор х

005

SUB #11

Х-11

006

WR 31

Запись х -11 в ячейку 31

007

MUL 31

(х-11)2

008

SUB #125

(х-11)2-125

009

JMP 017

Переход на вывод результата

010

RD 30

Загрузка в аккумулятор х

011

MUL 30

Х2

012

WR 31

Запись Х2 в ячейку 31

013

RD 30

Загрузка в аккумулятор х

014

MUL #72

72*Х

015

ADD 31

Х2+72*Х

016

ADI 10680

Х2+72*Х-680

017

OUT

Вывод результата в регистр OR

018

HLT

Стоп


Задание 2.

Разработать программу вычисления функции в соответствии с заданным вариантом.

1. Y={

x2-5(x+7)+55 x>=10

5. Y={

(3x-7)2 +5x-12 x>=10

15x-(x-5)2 x<10

3x2-12x x<10

2. Y={

250- x2+ 12x x>=10

6 Y={

5x2+6(x+5)-25 x>=10

12(x2-7)2 x<10

(x-3)2-12x+30 x<10

3. Y={

2x2-7x+12 x>=10

7. Y={

8(x-2)2-5x+10 x>=10

(x+6)2+120 x<10

5x2+4(x+3)-25 x<10

4. Y={

x2+5(x+12) x>=10

8. Y={

6(x+1)2-5x+12 x>=10

3x2-5(x+12)+10 x<10

2x2-9(x-3)+31 x<10




Программирование циклических процессов.


При решении задач, связанных с обработкой массивов, возникает необходимость изменения исполнительного адреса при повторном выполнении некоторой последовательности команд.

Эта задача может быть решена путем использования косвенной адресации. В качестве примера рассмотрим программу суммирования последовательности чисел


Адрес

Команда

Примечание

000

rd #3

Загрузка в аккумулятор числа повторений цикла

001

wr r2

Запись числа повторений цикла в регистр R2

002

rd #070

Загрузка в аккумулятор адреса первого числа

003

wr r1

Запись адреса первого числа в регистр R1

004

rd #0

Загрузка в аккумулятор начального значения суммы S=0

005

wr r3

Запись начального значения суммы в регистр R3

006

m1:rd @r1

Загрузка в аккумулятор очередного числа

007

add r3

Добавление к текущей сумме очередного числа

008

wr r3

Запись текущего значения суммы в регистр R3

009

rd r1

Загрузка в аккумулятор адреса очередного числа

010

add #1

Увеличение на 1 адреса очередного числа

011

wr r1

Запись адреса очередного числа в регистр R1

012

rd r2

Загрузка в аккумулятор оставшегося числа повторений цикла

013

sub #1

Уменьшение на 1оставшегося числа повторений цикла

014

wr r2

Запись в R2 оставшегося числа повторений цикла

015

jnz m1

Проверка оставшегося числа повторений цикла(R2), и если R2<>0 переход на метку M1

016

rd r3

Загрузка в аккумулятор полученного значения суммы S

017

wr 080

Запись результата в ОЗУ

018

hlt

Стоп


Задание 3.


Вариант

Задание

1

Количество четных чисел

2

Значение и порядковый номер минимального числа

3

Сумму нечетных чисел

4

Значение и номер первого числа >10

5

Количество чисел <10

6

Сумму чисел >10

7

А1-А2+А3-А4+А5…….

8

Значение и порядковый номер максимального числа


Задание 4. Решить задачу из Задания 3 для обработки 2х массивов с использованием подпрограммы, с записью полученного результата в ячейку, следующую за последним элементом массива.


Литература.

Жемакин А.П. Архитектура ЭВМ. СПБ.: БХВ - Петербург, 2006.-320с.


Случайные файлы

Файл
45763.rtf
27282-1.rtf
90536.rtf
158044.rtf
139924.rtf