Главная страница

Основные правила написания на Ассемблере 580. Основные правила составления программ на ассемблере


Скачать 75.39 Kb.
НазваниеОсновные правила составления программ на ассемблере
Дата27.04.2023
Размер75.39 Kb.
Формат файлаdocx
Имя файлаОсновные правила написания на Ассемблере 580.docx
ТипДокументы
#1094227
страница1 из 3
  1   2   3

http://affon.narod.ru/Posobie.htm


ВВЕДЕНИЕ................................................................................................................................... 4


1.ОСНОВНЫЕ ПРАВИЛА СОСТАВЛЕНИЯ ПРОГРАММ НА АССЕМБЛЕРЕ........ 5

1.1. Коды команд....................................................................................................................... 5

1.2. Программная модель микропроцессорной системы....................................................... 6

1.3. Команды микропроцессора КР580ВМ80......................................................................... 9

2. КРОСС-СРЕДСТВА ОТЛАДКИ.......................................................................................... 13

2.1. Формат ассемблерной строки......................................................................................... 13

2.2.  Директивы Ассемблера................................................................................................... 14

2.2. Режим ассемблирования.................................................................................................. 16

2.4. Режим симуляции прикладной программы................................................................... 16

3. УЧЕБНЫЙ МИКРОПРОЦЕССОРНЫЙ КОМПЛЕКТ (УМК).................................... 19

4. ЛАБОРАТОРНЫЕ РАБОТЫ............................................................................................... 22

4.1. Изучение правил составления ассемблерных программ и их отладки с помощью кросс-средств (Л.Р.1)................................................................................................................................................... 22

4.2. Изучение УМК и правил составления простых программ (Л.Р.2).............................. 23

ПРИЛОЖЕНИЕ 1. ПРОГРАММА ПЕРЕМНОЖЕНИЯ ДВУХ ОДНОБАЙТОВЫХ ЧИСЕЛ БЕЗ ЗНАКА....................................................................................................................................................... 32

ПРИЛОЖЕНИЕ 2.  СИСТЕМА КОМАНД МИКРОПРОЦЕССОРА КР580ВМ80......... 34


ВВЕДЕНИЕ

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

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

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

   Существенное повышение производительности труда при проектировании прикладных программ дает использование языков высокого уровня, специально приспособленных для программирования МП. Являясь машинно-независимыми, они позволяют весь процесс получения программы в машинных кодах свести к трансляции (переводу) с одного представления в другое. С помощью специальной компилирующей программы  производится трансляция с языка высокого уровня  на язык Ассемблера и далее с помощью Ассемблера - в машинные коды. Каждому оператору языка высокого уровня соответствует 5 - 10 и более команд Ассемблера, что, очевидно, облегчает программирование. Поскольку трансляторы создаются для широкого круга программ, то, естественно, осуществляемый ими перевод не позволяет достичь той же эффективности, как при программировании на Ассемблере.  Более того, окончательная отладка программы ведется обычно на  Ассемблере. Из языков высокого уровня  последнее время широко используется язык СИ.

Теоретические основы использования микропроцессорных устройств излагаются в курсе «Цифровые устройства и микропроцессоры». Практические навыки составления программ на Ассемблере отрабатываются студентами в процессе практических занятий и лабораторных работ.   Лабораторные работы предусматривают создание программ на языке Ассемблера с последующей их отладкой.

Лабораторный практикум на кафедре РПУ организован в настоящее время в двух вариантах либо на базе «Учебных микропроцессорных комплектов» (УМК), либо программных средств отладки в дисплейном классе кафедры.

Целью данного учебного пособия является методическое обеспечение этих двух вариантов выполнения лабораторных работ.

 

1.ОСНОВНЫЕ ПРАВИЛА СОСТАВЛЕНИЯ ПРОГРАММ НА АССЕМБЛЕРЕ

 

1.1. Коды команд

 

Микропроцессор работает только с двоичными кодами. Среди совокупности этих кодов имеется определенная группа кодов, каждый из которых может «заставить» микропроцессор выполнить определенные действия (операции). Такой код часто называется кодом команды и, как правило, определяет одну команду из системы команд микропроцессора. Код любой команды представляется в запоминающем устройстве двоичным восьмиразрядным числом (байтом). Всего с помощью байта можно формировать 28 = 256 различных кодо­вых комбинаций. Почти столько же команд (244) имеет микропроцессор КР580ВМ80.  Естественно, что запомнить  244  кода довольно трудно, и поэтому каждому коду ставится в соответствие мнемоническое название (мнемоника) команды, которое является сокращением от английских слов, описывающих ее действие. Мнемонический код команд позволяет легче запомнить их функции и значительно упрощает написание программ. Такой язык написания программ называется Ассемблером. После того, как программа написана на Ассемблере, ее необходимо снова перевести на язык, понятный микро­процессору, т. е. перевести в последовательность двоичных восьмиразрядных чисел. Перевод в последовательность двоичных цифр может происходить автоматически с помощью специальных про­грамм-трансляторов (такие программы носят название «кросс-ассемблер» или «ассемблер») или вручную.

Для ручной трансляции можно использовать табл.1, в которой приведены все команды микропроцессора КР580ВМ80. С помощью этой таблицы можно легко и быстро сопоставить мнемонику команды с ее кодом . Код  каждой команды приведен здесь в верхней горизонтальной строке (младшие раз­ряды) и в крайнем левом столбце (старшие разряды) в шестнадцатеричной системе счисления. Например, команда STAX D имеет код 12Н, команда JZ ADR — код  СА.

 

Таблица 1.

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

0

NОР

 

 

 

MOV

B,B

MOV

D,B

MOV

H,B

MOV

M,B

ADD

B

SUB

B

ANA

B

DRA

B

RNZ

RNC

RPO

RP

0

1

LXI

B

LXI

D

LXI

H

LXI

SP

MOV

B,C

MOV

D,C

MOV

H,C

MOV

M,C

ADD

C

SUB

C

ANA

C

DRA

C

POP

B

POP

D

POP

H

POP

RSW

1

2

STAX

B

STAX

D

SHLD

STA

MOV

B,D

MOV

D,D

MOV

H,D

MOV

M,D

ADD

D

SUB

D

ANA

D

DRA

D

JNZ

JNC

JPO

JP

2

3

INX

B

INX

D

INX

H

INX

SP

MOV

B,E

MOV

D,E

MOV

H,E

MOV

M,E

ADD

E

SUB

E

ANA

E

DRA

E

JMP

OUT

XTHL

D1

3

4

INR

B

INR

D

INR

H

INR

М

MOV

B,H

MOV

D,H

MOV

H,H

MOV

M,H

ADD

H

SUB

H

ANA

H

DRA

H

CNZ

CNC

CPO

CP

4

5

DCR

B

DCR

D

DCR

H

DCR

М

MOV

B,L

MOV

D,L

MOV

H,L

MOV

M,L

ADD

L

SUB

L

ANA

L

DRA

L

PUSH

B

PUSH

D

PUSH

H

PUSH

PSW

5

6

MVI

B

MVI

D

MVI

H

MVI

М

MOV

B,M

MOV

D,M

MOV

H,M

HTL

ADD

M

SUB

M

ANA

M

DRA

M

ADI

SUI

ANI

ORI

6

7

RLC

RAL

DAA

STC

MOV

B,A

MOV

D,A

MOV

H,A

MOV

M,A

ADD

A

SUB

A

ANA

A

DRA

A

RST

0

RST

16

RST

32

RST

48

7

8

 

 

 

 

MOV

C,B

MOV

E,B

MOV

L,B

MOV

A,B

ADC

B

SBB

B

XRA

B

CMP

B

RZ

RC

RPE

RM

8

9

DAD

B

DAD

D

DAD

H

DAD

SP

MOV

C,C

MOV

E,C

MOV

L,C

MOV

A,C

ADC

C

SBB

C

XRA

C

CMP

C

RET

 

PCHL

SPHL

9

A

LDAX

B

LDAX

D

LHLD

LDA

MOV

C,D

MOV

E,D

MOV

L,D

MOV

A,D

ADC

D

SBB

D

XRA

D

CMP

D

JZ

JC

JPE

JM

A

B

DCX

B

DCX

D

DCX

H

DCX

SP

MOV

C,E

MOV

E,E

MOV

L,E

MOV

A,E

ADC

E

SBB

E

XRA

E

CMP

E

 

IN

XCHG

EI

B

C

INR

C

INR

E

INR

L

INR

A

MOV

C,H

MOV

E,H

MOV

L,H

MOV

A,H

ADC

H

SBB

H

XRA

H

CMP

H

CZ

CC

CPE

CM

C

D

DCR

C

DCR

E

DCR

L

DCR

A

MOV

C,L

MOV

E,L

MOV

L,L

MOV

A,L

ADC

L

SBB

L

XRA

L

CMP

L

CALL

 

 

 

D

E

MVI

C

MVI

E

MVI

L

MVI

A

MOV

C,M

MOV

E,M

MOV

L,M

MOV

A,M

ADC

M

SBB

M

XRA

M

CMP

M

ACI

SBI

XRI

CPI

E

F

RRC

RAR

CMA

CMC

MOV

C,A

MOV

E,A

MOV

L,A

MOV

A,A

ADC

A

SBB

A

XRA

A

CMP

A

RST

8

RST

24

RST

40

RST

56

F

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 
  1   2   3


написать администратору сайта