Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Михайлов часть2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.56 Mб
Скачать

Задание 3. Исследование процесса выполнения программы по командам.

Пояснение к заданию. Среди режимов работы микро-ЭВМ имеется режим выполнения программ по командам, который задается клавишей ШК. Это дает возможность контроля за выполнением программы или изучения работы задействованных элементов микро-ЭВМ. После выполнения каждой команды происходит обращение к программному счетчику. Поэтому после контроля выполнения очередной команды, например, после проверки содержимого внутренних регистров, обращением к счетчику (клавиша ПСч) можно восстановить проверяемый адрес команды.

Порядок выполнения. Ввести в микро-ЭВМ программу 1 или 2, а также исследуемое число. Выполнить программу по командам с помощью клавиши ШК. На каждом шаге, используя клавишу ОтРг, проанализировать содержимое аккумулятора и внутренних регистров микро-ЭВМ, составить таблицу. Проследить порядок пересылки данных между адресами памяти, аккумулятором и внутренними регистрами.

Задание 4. Обнуление бита переноса

4.1. Сложить два числа: FF и 01.

4.2. Открыть регистр FL и убедиться, что бит переноса равен 1

4.3. Обнулить бит переноса, используя команду LXI rp; data

4.4. Открыть регистр FL и убедиться, что бит переноса равен 0

4.5. Сложить два числа: F0 и 01.

4.6. Убедиться, что бит переноса равен 0

Список необходимых команд микропроцессора к580

Мнемоника

Назначение и описание

Двоичный код

Байт

Формат

Признаки

Z|S|P|C|AC

Команды пересылки

MOV d,s

Пересылка данных из регистра в регистр (s)  (d)

01dddsss

1

а

- - - - -

MOV d,M

Пересылка данных из памяти по адресу (H)(L) в регистр

[(H)(L)]  (d)

01ddd110

1

a

- - - - -

MOV M,s

Пересылка данных из регистра в память по адресу (H)(L)

(s)  [(H)(L)]

01110sss

1

a

- - - - -

MVI d

Пересылка константы в регистр

[<byte>]  (d)

00ddd110

byte

2

з

- - - - -

MVI M

Пересылка константы в память по адресу (H)(L)

[<byte>]  [(H)(L)]

00110110

byte

2

ж

- - - - -

LXI rp,data

Загрузка пары регистров непосредственным двухбайтовым значением

<high byte> (rph), <low byte>(rpl)

00rp0001

low byte

high byte

3

л

- - - - -

LDA M

Загрузка А прямая

[<low byte> <high byte>] (А)

(адрес памяти)

00111010

low byte

high byte

3

к

- - - - -

STA M

Загрузка памяти прямая

(А)  [<low byte> <high byte>]

(адрес памяти)

00110010

low byte

high byte

3

к

- - - - -

LDAX rp

Косвенная загрузка А

[(rp)]  (A)

00rp1010

1

д

- - - - -

STAX rp

Сохранение А по адресу (rp)

(A)  [(rp)]

00rp0010

1

д

- - - - -

Команды арифметической обработки

ADD s

Сложение регистра с А

(A) + (s)  (A)

10000sss

1

б

+ + + + +

ADD M

Сложение содержимого памяти с А

(A) + [(H)(L)]  (A)

10000110

1

б

+ + + + +

ADI

Сложение константы с А

(A) + <byte>  (A)

11000110

byte

2

ж

+ + + + +

SUB s

Вычитание регистра из А

(A) - (s)  (A)

10010sss

1

б

+ + + + +

SUB M

Вычитание содержимого памяти из А

(A) – [(H)(L)]  (A)

10010110

1

б

+ + + + +

SUI

Вычитание константы из А

(A) - <byte>  (A)

11010110

byte

2

ж

+ + + + +

INR s

Инкремент регистра

(s) + 1  (s)

00ddd100

1

в

+ + + - +

INR M

Инкремент ячейки памяти

[(H)(L)] + 1  [(H)(L)]

00110100

1

в

+ + + - +

INX rp

Инкремент пары регистров

[(rp)] + 1  [(rp)]

00rp0011

1

в

- - - - -

DCR s

Декремент регистра

(s) – 1  (s)

00ddd101

1

в

+ + + - +

DCR M

Декремент ячейки памяти

[(H)(L)] – 1  [(H)(L)]

00110101

1

в

+ + + - +

DCX rp

Декремент пары регистров

[(rp)] – 1  [(rp)]

00rp1011

1

в

- - - - -

Команды логической обработки

ANA s

Логическое умножение А с регистром

(A)  (s)  (A)

10100sss

1

б

+ + + 0 +

ANA M

Логическое умножение А с ячейкой памяти (A) [(H)(L)]  (A)

10100110

1

б

+ + + 0 +

ANI

Логическое умножение константы с А

(A)  <byte>  (A)

11100110

byte

2

ж

+ + + 0 +

ORA s

Логическое сложение А с регистром

(A)  (s)  (A)

10110sss

1

б

+ + + 0 0

ORA M

Логическое сложение А с ячейкой памяти (A)  [(H)(L)]  (A)

10110110

1

б

+ + + 0 0

CMA

Инвертирование аккумулятора

00101111

1

г

- - - - -

RLC

Циклический сдвиг влево

00000111

1

г

- - - + -

RRC

Циклический сдвиг вправо

00001111

1

г

- - - + -

RAL

Сдвиг влево через перенос

(s) * 2  (s)

00010111

1

г

- - - + -

RAR

Сдвиг вправо через перенос

(s) /2  (s)

00011111

1

г

- - - + -

Команды управления

JMP addr

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

11000011

3

к

- - - - -

RST1

Прервать выполнение

11001111

1

г

- - - - -

[ адрес памяти ] - операнд в памяти

( регистр ) - операнд в регистре или в регистровой паре

< число > - непосредственное число (константа)

Регистры

Пары регистров

код

имя

код

имя

стар

млад

000

B

00

B

B

C

001

C

010

D

01

D

D

E

011

E

100

H

10

H

H

L

101

L

110

M

11

PSW

A

FL

111

A

1 байтные

2 байтные

3 байтные

76

543

210

76

543

210

67

543

210

а)

КОП

DDD

SSS

е)

КОП

и)

КОП

ССС

КОП

port(адрес)

addr младший

б)

КОП

SSS

старший

ж)

КОП

в)

КОП

DDD

CCC NNN

КОП

data8(операнд)

к)

КОП

addr младший

з)

КОП

DDD

КОП

старший

г)

КОП

data8(операнд)

л)

КОП

RP

КОП

д)

КОП

RP

КОП

data16 младший

старший

FL

Регистровые пары

rph

rpl

B

C

D

E

H

L

Указатель стека

SP

Счетчик команд

PC

PSW

A

FL

Регистр флагов

Условие установки разряда в "1"

S

Z

0

AC

0

P

1

C

Перенос из 7 разряда

Четность

Перенос из 3 разряда

Нулевой результат

Отрицательный результат