Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.Курсовое проектирование -учебное пособие.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
757 Кб
Скачать
☆

Необходимая справочная информация

Ниже приводится материал, необходимый для выполнения курсового проекта. В главе 1 вы сможете найти формальные данные по системе программирования микропроцессора КР580 (микроЭВМ СМ-1800). Представлены три таблицы, которые являются основным справочным материалом при программировании индивидуальных заданий. Первая таблица (наиболее полная, см. раздел 1.2) дает многостороннюю характеристику всех машинных команд. В таблице раздела 1.3 вы найдете словесную расшифровку тех же функций, что и в таблице 1.2. И, наконец, в таблице 1.4 мы приводим обратное соответствие шестнадцатеричных кодов ассемблерным изображениям машинных команд.

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

Глава 3 посвящена описанию нашего основного средства для выполнения как курсовых, так и лабораторных работ – эмулятора микроЭВМ СМ-1800 на ПК. Приведенное описание может служить справочным материалом для эксплуатации программы-эмулятора на вашем ПК, которую вы «скачаете» с нашего сайта www.sapr.lti-gti.ru .

1 Программирование в кодах для микроЭвм см-1800

МикроЭВМ СМ-1800 представляет собой восьмиразрядную встраиваемую агрегативную машину, выполненную на микросхемах серий К580, К589, К565 и других. Центральный процессор ЭВМ КР580ИК80А является полным функциональным аналогом однокристального микропроцессора Intel 8080.

Все внешние устройства подключаются через соответствующие адаптеры к системной магистрали СМ-1800, выполненной по стандарту И41. Адресация устройств процессором согласно этому стандарту проходит по методу «изолированных линий», что означает использование специальных команд ввода/вывода (IN/OUT).

Лабораторный практикум по дисциплине «ЭВМ и периферийные устройства» включает в себя ряд работ на базе Эмулятора ЭВМ СМ-1800 на современных персональных компьютерах и содержит элементы программирования в машинных кодах и на ассемблере.

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

1.1 Обозначения, используемые при описании команд

При описании команд микроЭВМ СМ-1800 используются следующие обозначения регистров:

R – обозначение одного из однобайтных регистров макропроцессора из следующего набора: A,B,C,D,E,H,L;

F – регистр флагов (однобайтный), пять из восьми битов которого используется для фиксации следующих признаков результата операции:

Таблица 1 – Назначение флагов

Разряд в регис-тре F

Обозначение бита

Содержание признака

Состояние бита

«1»

«0»

0

CY

перенос из 7-го разряда

есть перенос

нет переноса

4

AC

перенос из 3-го разряда

есть перенос

нет переноса

6

Z

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

результат равен нулю

результат не равен нулю

7

S

знак результата

отрицатель-ный (минус)

положитель-ный (плюс)

2

P

оценка коли-чества единиц в коде результата

чётное

нечётное

SP – указатель стека (двухбайтовый регистр);

PC – программный счетчик (двухбайтовый регистр);

M – символ, используемый для обозначения ячейки оперативной памяти, причем адрес этой ячейки указывается косвенно – он содержится в паре регистров H, L.

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

 - логическое умножение – «И»;

 - логическое сложение – «ИЛИ»;

 - сложение по модулю 2 – исключающее «ИЛИ».

Конкретный код команд ADD, ADC, ANA, CMP, DCR, INR, MOV, MVI, ORA, SBB, SUB, XRA определяется подстановкой кода регистра-источника данных (SSS) или кода регистра-приемника данных (DDD). Приняты следующие коды для обозначения регистров:

Имя регистра

Код регистра

B

000

C

001

D

010

E

011

H

100

L

101

M (память)

110

A (аккумулятор)

111

Примеры.

1. Команда ADD R(код 1000 0SSS) осуществляет сложение содержимого аккумулятора и регистра R. Если в конкретном случае регистром R является регистр С, код которого SSS=001, то код команды записывается так:

1000 0001 или 81h в шестнадцатеричной системе.

2. Команда MOV R1,R2 (код 01DDDSSS) осуществляет пересылку содержимого из регистра-источника R2 в регистр-при­емник R1.Если в конкретном случав регистром-источником является регистр E (SSS=011), а регистром-приемником регистр В (DDD=010), то код команды: 0101 0011=53h.

В описании команд циклического сдвига содержимого аккумулятора (RAL, RAR, RLC, RRC) использовано обозначение АМ -бит М регистра А (аккумулятора), причем А0 и А7-соответст­венно младший и старший (знаковый) биты аккумулятора.

При чтении описания команд следует учитывать следующие обозначения при записи:

B2 - второй байт команды ( в командах ADI, АСI, АNI, CPI, MVI, ORI, SBI, SUI, XRI – это непосредственные данные, в ко­мандах IN и OUT – адрес порта),

ВЗ – третий байт команды, обычно самостоятельно не выступающий,

→ направление передачи данных (...из...в...),

( ) - содержимое байта (команда, регистра, памяти). Следует читать:

(H) - содержимое регистра Н,

(В) - содержимое регистра В,

(В2)- содержимое второго байта команды,

(М) - содержимое ячейки оперативной памяти, адрес которой помещен в паре регистров Н, L, т.е. адресом является (Н, L).

При описании команд вызова (безусловного САLL и восьми по условию), требующих запоминания адреса возврата из подпрограммы в стековой памяти, а также команд извлечения содержимого регистров из стека (РОР) и засылки содержимого регистров в стек (РUSН) использованы квадратные скобки для обозначения адреса ячейки стека.

Например, запись [SР-1] [SР-2]  (РС) следует читать так: поместить содержимое программного счетчика РС (два байта) в две ячейки стековой памяти, адреса которых определяются как уменьшенное соответственно на единицу и на два содержимое указателя стека SР.

Для команд условного вызова подпрограмм и возврата по условию в их описании даны два значения количества машинных циклов в команде: первое, если условие не выполнено и далее выполняется очередная команда программы, а второе – если условие выполнено и происходит вызов подпрограммы или возврат. Время выполнения одного цикла команды от 1 до 5 машинных циклов.

ЗАМЕЧАНИЕ:

Все команды преобразования данных (арифметические, логические) модифицируют пять описанных в таблице 1 флагов. В результате выполнения любой логической операции флаг СY сбрасывается в 0. Операция инкремента и декремента коротких (байтовых) регистров (INR_R, DCR_R) модифицируют все флаги кроме CY. Команды INX R и DCХ R значения флагов не изменяют.