Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Раздел 3. ОТРАСЛИ СОВРЕМЕННОГО РОССИЙСКОГО ПРАВА

Читайте также:
  1. A. Раздел специальной психологии, изучающей психическое развитие у умственно отсталых людей и возможности его коррекции.
  2. F1:Концепции современного естествознания
  3. I - Всероссийского конкурса детского и юношеского
  4. I раздел.
  5. I Раздел. Определение провозной способности судна.
  6. I. Нормы современного русского литературного языка. Орфоэпические нормы. Лексические нормы.
  7. I. Определение эпидемического процесса и методологическое обоснование разделов учения об эпидемическом процессе.
  8. I. Определение эпидемического процесса и методологическое обоснование разделов учения об эпидемическом процессе.
  9. I. Организационно - методический раздел
  10. I. ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЙ РАЗДЕЛ

Система команд МП – это полный перечень элементарных действий, которые способен производить МП. Управляемый этими командами МП выполняет простые действия, такие как элементарные арифметические и логические операции, пересылку данных, сравнение двух величин и др. Число команд МП КР580ВМ80 - 78 (с учетом модификаций 244).

Различают следующие группы команд:

- передачи данных;

- арифметические;

- логические;

- команды перехода;

- команды ввода-вывода, управления и работы со стеком.


Тема 3.3 Команды передачи данных и ввода-вывода

 

Символы и сокращения, применяемые при описании команд и составлении программ

 

Символ Сокращение
ADDR 16-битовый адрес
DATA 8-битовые данные
DATA 16 16-битовые данные
PORT 8-битовый адрес УВВ (устройства ввода-вывода)
BYTE 2 Второй байт команды
BYTE 3 Третий байт команды
R, R1, R2 Один из регистров: A, B, C, D, E, H, L
RP Одна из регистровых пар: В - задает пару ВС; D - задает пару DE; H – задает пару HL
RH Первый регистр пары
RL Второй регистр пары
Λ Логическое умножение
٧ Логическое сложение
Сложение по модулю два
М Ячейка памяти, адрес которой задаёт содержимое регистровой пары HL, т. е. М = (HL)

Команды передачи данных служат для пересылки данных между следующими устройствами:

- регистр – регистр;

- регистр – память;

- данные, содержащиеся в команде, - регистр;

- данные, содержащиеся в команде, - память.

 

Команды передачи данных

Могут быть однобайтовыми, двухбайтовыми и трехбайтовыми. Эти команды не оказывают воздействия на флаги условий.

 

Однобайтовые

MOV R1, R2 –пересылка данных из регистра в регистр. В качестве регистров может быть использован любой из регистров A, B, C, D, E, H, L. (R1) ← (R2)

MOV R, M – пересылка данных из памяти в регистр. М - ячейка памяти, адрес которой указан в регистровой паре HL. (R) ← (H, L).

MOV M, R – пересылка данных из регистра в память. (H, L) ← (R).

 

2-х байтовые

MVI R, DATA – пересылка непосредственная. Содержимое второго байта команды пересылается в регистр R. (R) ← (BYTE 2).

MVI M, DATA – пересылка в память непосредственная. (H, L) ← (BYTE 2).

3-х байтовые

LXI RP, DATA 16 – непосредственная загрузка регистровой пары.

(RH) ← (BYTE3) (RL) ← (BYTE2).

LDA ADDR – прямая загрузка А. Cодержимое ЯП, адрес которой указан во втором и третьем байтах команды, загружается в А. (A) ← (BYTE3, BYTE2).

STA ADDR – прямая запись содержимого А в ячейку памяти, адрес которой указан во втором и третьем байтах команды. (BYTE3, BYTE2) ← (А).

Однобайтовые

STAX – косвенная загрузка А в память. Содержимое А пересылается в ЯП, адрес которой указан в паре регистров (RP). Может быть указана только пара В и D. (RP) ← (A).

LDAX – косвенная загрузка А. Содержимое ЯП, адрес которой указан в регистровой паре (RP), пересылается в А. Может быть указана только пара В и D. (А) ← (RP).

 

Команды ввода-вывода оказывают влияние на флаги.

 

Для обмена данными с процессором внешние устройства имеют на своих входах и выходах регистры, называемые портами ввода-вывода.

2-х байтовые

IN PORT - команда ввода данных предназначена для ввода данных из входного порта в А. Команда двухбайтовая. (А) ← (PORT)

OUT PORT - команда вывода данных предназначена для вывода данных из А в выходной порт. Команда двухбайтовая. (PORT) ← (А).

 

Команды работы со стеком

Однобайтовые

PUSH RP – загрузка в стек содержимого пары регистров

PUSH PSW - загрузка в стек слово состояния программы.

POP RP – считать из стека содержимое пары регистров.

POP PSW - считать из стека слова состояния программы.

XTHL – обмен содержимого верхушки стека и содержимого регистров H и L. (L) ↔ (SP)

(H) ↔ (SP) + 1

SPHL – пересылка содержимого регистров H и L в указатель стека. (SP) ↔ (H) (L).

 


Тема 3.4 Команды обработки данных

К этим командам относятся команды выполнения арифметических операций и команды выполнения логических операций.

1. Арифметические команды

Команды этой группы выполняют арифметические операции над данными в регистрах и памяти. Эти команды воздействуют на флаги состояний стандартным образом.

Однобайтовые

ADD R – команда сложения содержимого А с содержимым регистра. (А)← (А) + R

ADD M – команда сложения содержимого А с содержимым ЯП, адрес которой находится в регистровой паре HL. (А) (А)+ [(H)(L)]

2-х байтовые

ADI DATA – непосредственное сложение. (А) (А) + (ВYTE2).

Однобайтовые

ADC R - сложение содержимого регистра с А с переносом (A) (A) + (R) + (CY)

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

ACI - сложение константы с А с переносом (А) (А) + (В2) + (CY)

SUB R – команда вычитания содержимого регистра из содержимого А. (А) (А) - (R).

SUB M – команда вычитания содержимого ЯП из содержимого А. (A) (A) - [(H) (L)].

2-х байтовые

SUI DATA – непосредственное вычитание. (А) (А) - (ВYTE2).

Однобайтовые

SBB R – вычитание содержимого регистра и бита переноса. (A)← (A)-(R)-(CY).

SBB M – вычитание содержимого ЯП и бита переноса. (A)← (A) – (H, L) – (CY).

SBB R - вычитание регистра с заёмом (уменьшаемое меньше вычитаемого)

(A) (A) - (R) - (CY)

SBB М - вычитание памяти с заёмом (А) (А) [(H)(L)] - (CY)

2-х байтовые

SBI DATA – непосредственное вычитание с заемом. (A) ← (A) (BYTE2) – (CY).

Однобайтовые

INR R – увеличение содержимого регистра на 1. (R) (R) + 1.

INR M – увеличение содержимого памяти на 1. [(Н) (L)] [(Н)(L)]+1.

DCR R – уменьшение содержимого регистра на 1. R ← (R) – 1.

DCR M – уменьшение содержимого памяти на 1. [(H) (L)] [(H) (L)] – 1.

INX RP – увеличение содержимого регистровой пары на 1. (RH) (RL) ← (RH) (RL) + 1. DCX RP – уменьшение содержимого регистровой пары на 1. (RH) (RL) ← (RH) (RL) – 1.

DAD RP – сложение содержимого пары регистров с содержимым регистров H и L. (H) (L) ← (H) (L) + (RH) (RL).

Команды сложения и вычитания с учётом переносов (заёма) позволяют организовать обработку многобайтовых чисел последовательно по байтам, которые хранятся в смежных ячейках памяти и адресуются, начиная с младшего.

2. Логические команды

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

Однобайтовые

ANA R – операция конъюнкция (логическое умножение) над содержимым регистра и А. (А) (А) Λ (R).

ANA M – операция конъюнкция над содержимым ЯП и А. (А) (А) [(H) Λ (L)].

 

2-х байтовая

ANI DATA - непосредственная операция конъюнкция. (А) (А) Λ (В2).

Однобайтовые

XRA R – регистровая операция сложение по модулю 2 (операция неравнозначности).

(А) (А) (R).

XRA M – операция сложение по модулю 2 над памятью. .

2-х байтовая

XRI DATA – непосредственная операция сложение по модулю 2. (A) (A) (B2).

Однобайтовые

ORA R – регистровая операция дизъюнкция (логическое сложение). (A) (A) v (R).

ORA M – операция дизъюнкция над памятью. (A) (A) v [(H)(L)].

2-х байтовые

ORI DATA – непосредственная операция дизъюнкция. (A) (A) v (B2).

Однобайтовые

CMP R – сравнение содержимого регистра с содержимым А. (А) - (R), содержимое А не изменяется.

CMP M – сравнение содержимого ЯП с содержимым А. (A) - [(H)(L)], содержимое А не изменяется.

2-х байтовая

CPI DATA – непосредственное сравнение. (А) – (ВYTE2), содержимое А не изменяется.

Однобайтовые

CMA – инвертирование А. (A) ().

RLC - циклический сдвиг содержимого А на один разряд влево.

RRC - циклический сдвиг содержимого А на один разряд вправо.


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

Команды этой группы предназначены для управления работой МП.

 

EI – разрешить прерывание.

DI – запретить прерывание.

Однобайтовые

HLT – останов выполнения текущей программы до тех пор пока не появится запрос на прерывание от устройств ввода вывода.

NOP – пустая операция. Команда используется для организации временных задержек.

 

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

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

3-х байтовая

JMP ADDR - безусловный переход. Управление передается команде, адрес которой указан во втором и третьем байтах команды перехода. (РС) (ВYTE3)(ВYTE2).

 

При выполнении команд условного перехода дальнейший выбор одной из последовательности команд зависит одного из четырех флагов: нуля (Z), знака результата (S), четности (P), переноса (C), т. е. сначала проверяется состояние одного из четырех флагов МП на выполнение указанного в команде условия, а затем происходит выполнение команды. При выполнении условия осуществляется переход по новому адресу, в противном случае выполняется следующая команда. Для удобства программирования предусмотрены проверки условий по единичным и нулевым значениям флагов CY (C), Z, S, P. Мнемоника команд условного перехода образуется добавлением буквы J (условие) к названию условия, а затем указывается адрес, куда следует перейти, если условие выполнено.

Все команды 3-х байтовые

Условия переходов приведены в таблице 1

 

Таблица 1

Условие Мнемокод команды
NZ – не нуль (Z=0) JNZ ADDR
Z –нуль (Z=1) JZ ADDR
NC нет переноса (С=0) JNC ADDR
С – есть перенос (С=1) JC ADDR
РО – нечетный результат (Р = 0) JPO ADDR
РЕ – четный результат (Р = 1) JPE ADDR
Р – плюс (S = 0) JP ADDR
M – минус (S = 1) JM ADDR

 

Команды вызова подпрограмм и возврата из них, программное прерывание

3-х байтовая

CALL ADDR - безусловный вызов подпрограммы по адресу, загружаемом в программный счётчик;

Однобайтовые

RET - возврат из подпрограммы безусловный;

RST N - вызов подпрограммы прерывания. (N – номер прерывающей программы)

 

Тема 3.6 Составление программ

Язык ассемблер – это машинно-ориентированное средство программирования. Программа на языке ассемблер называется исходной. Ассемблер транслирует исходную программу в символах в двоичные машинные коды. Такая программа называется объектной, её можно загружать в память для выполнения.

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

- поле метки;

- поле кода операции;

- поле операнда;

- поле комментария.

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

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

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

Поле комментария начинается символом «;». Размещают описание назначения оператора. Это поле имеет вспомогательные функции и используется только программистом при составлении программы.

Все операторы записываются с помощью символов кода ASCII (американский стандартный код для обмена информацией).

При трансляции ассемблер присваивает своему счётчику адреса значение 0800Н; по этому адресу в программе будет расположен первый байт команды или данных.

Раздел 3. ОТРАСЛИ СОВРЕМЕННОГО РОССИЙСКОГО ПРАВА




Дата добавления: 2014-12-20; просмотров: 28 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.021 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав