Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №2 [вариант 10]

.doc
Скачиваний:
23
Добавлен:
02.05.2014
Размер:
86.02 Кб
Скачать

Министерство образования РФ

Уфимский Государственный Авиационный Технический Университет

Кафедра АСУ

Отчет по лабораторной работе №2

Система команд микроЭВМ

Выполнили: студенты гр. АСОИ-331

Максютова Д.Р. Катьянова Е.В.

Проверил: Дубинин Н.М.

Уфа 2008

1. Цель работы

Изучить систему команд УОУ, построенного на базе микропроцессора КР 580 ВМ 80А, их структуру, процедуру их кодирования и ввода в ОЗУ, организацию командного управления и выполнить вычисления на УОУ.

2. Теоретические сведения

Последовательность (закон) преобразования информации в ЭВМ задается программой. Программа размещается в ОЗУ в виде команд, представленных в машинных кодах. Представление программ в машинных кодах требует много времени на ввод команд и их проверку. Поэтому для уменьшения времени на программирование, вероятности ошибок кодирования, повышения наглядности представления команд, для задания закона преобразования информации используется машинно-ориентированный язык Ассемблер. Поскольку различные микро ЭВМ отличаются структурой и конструктивными особенностями, изменяется содержание и языка Ассемблер. Однако эти изменения имеют преемственность, а представление программы на языке Ассемблер позволяет получать наиболее короткие программы, занимающие меньший объем памяти по сравнению с программами, написанными на языках высокого уровня. Программа, представленная в мнемонике Ассемблера, также должна быть оттранслирована, т.е. переведена и размещена в машинных кодах в ОЗУ. Для такого перевода необходима программа-транслятор, которой в мониторе УОУ не имеется. Поэтому, хотя в данной работе и изучается язык Ассемблер, и команды представляются в его мнемонике, запись команд в ОЗУ осуществляется в шестнадцатеричной системе счисления вручную с клавиатуры УОУ.

3. Выполнение работы

3.1. Ответы на вопросы:

1. Указать назначение разрядов регистра F.

Регистр флагов F содержит информацию следующего вида:

S

Z

0

AC

0

P

1

b7 b6 b5 b4 b3 b2 b1 b0,

где разряд S - индикатор знака,

Z - индикатор нуля,

AC - индикатор вспомогательного переноса,

P - индикатор четности,

CУ - индикатор переноса.

Состояние регистра F используется последующими командами для выполнения и организации управления вычислительным процессом.

2. В каких кодах осуществляется операция вычитания в микро ЭВМ?

Операция вычитания осуществляется в дополнительных или обратных кодах.

3. Каким образом определяется адрес следующей команды после выполнения команд JMP аа, JPE аа?

JMP aa - безусловный переход к команде, находящейся в ячейке (байт 3, байт 2 = аа). Второй и третий байты команды загружаются в W, Z и РС, а через регистр адреса команда извлекает очередную необходимую команду программы.

4. Каким образом определяется адрес ячейки M для занесения операнда V при реализации команды MVI M, V?

MVI M, V (код - 36(16)) осуществляет непосредственную передачу V в ячейку с адресом, указанным в регистровой паре H, L. Поэтому перед выполнением данной команды необходимо предварительно поместить младший байт адреса ячейки М в регистр L, старший байт адреса в регистр H. Такая операция выполняется командой LHLD аа, где в ячейке с адресом аа располагают будущее содержимое L, а в ячейке аа+1 содержимое H.

5. Для каких целей используется команда DAA?

DAA корректирует результат сложения, хранящийся в А в двоичном коде, в двоично-десятичный код <8421>:

при АС =1 или b3b2b1b0(2)>9 прибавляет 6 к младшей тетраде байта;

при СУ=1 или b7b6b5b4(2)>9 прибавляет 6 к старшей тетраде.

6. Каков должен получиться результат после выполнения команды ANA B, если A=78(16), B=5F(16)?

ANA B осуществляет операцию A(A&B).

А = 78(16) = 1111000(2).

В = 5F(16) = 1011111(2).

Тогда А = 1011000(2) = 58(16).

7. Как определяется адрес ячейки памяти при выполнении команды ADD M, и в каких кодах выполняется сложение?

ADD M (код - 86(16)) складывает содержимое аккумулятора с операндом ячейки памяти по адресу, указанному в регистровой паре H, L. Осуществляет сложение в прямых кодах.

3.2. Перевод чисел из десятичной в двоичную и шестнадцатеричную системы счисления:

X(10) = 7.11

X(2) = 111.000111000010

X(16) = 7.1C2

X*(2) = 0011 1000 (коэффициент фиксации = 3)

X*(2)д = 0011 1000

X*(16) = 38

X*(16)д = 38

Y(10) = -18.3

Y(16) = -90.4C

Y(2 )= -10010.010011001100

Y*(2) = 11001001 (коэффициент фиксации = 3)

Y*(16) = C9

Y*(2)д = 10110110 + 20 = 10110111

Y*(16)д = B7

3.3. Уточненный алгоритм вычислений согласно варианту:

3.4. Программа, реализующая данный алгоритм в мнемонике Ассемблера и в машинных кодах:

Адрес

Команда

Код

А

D

H, L

82

0B

0C

0D

8300

8301

8302

8303

8304

8305

8306

8307

8308

8309

830A

830B

830C

830D

830E

830F

8310

8311

8312

8313

8314

8315

8316

8317

8318

8319

LXI H,VV

MVI M,V

INX H

MVI M,V

DCX H

MOV D,M

MOV A,D

RAR

JC aa

INX H

ADD M

JM aa

DCX H

SBB M

INX H

INX H

MOV M,A

RST 4*8

21

0B

82

36

38

23

36

C9

2B

56

7A

1F

DA

14

83

23

86

FA

0A

83

2B

9E

23

23

77

E7

38

1C

E5

AC

38

820B

820C

820B

820C

820B

820C

820D

38

C9

AC

3.5. Операции сложения, вычитания, сдвига согласно варианту 10:

1) x = 0011 1000(2) → сдвиг вправо → x = 00011 100(2), СУ=0

x = 1C(16)

2) A ← (A+M(820C)) = A ← (A+Y) → 0001 1100(2) = 1C(16)

1100 1001(2) = C9(16)

1110 0101 (2) = E5(16)

3) A ← (A-M(820B)) = A ← (A-X-СУ) → 1110 0101 (2) = E5(16)

0011 1000(2) = 38 (16)

1(2) = 1(16)

1010 1100 (2) = AC(16)

4. Вывод

Показано, что программа размещается в ОЗУ в виде команд, представленных в машинных кодах; запись команд в ОЗУ осуществляется в шестнадцатеричной системе счисления вручную с клавиатуры УОУ; в качестве последней команды останова использована RST4*8, позволяющая вызвать Монитор для индикации результатов.