Некоммерческое акционерное общество
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ
Кафедра «Электроника»
ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ
Часть 3
Методические указания к выполнению лабораторных работ
для студентов всех форм обучения специальности
5B070300 – Информационные системы
Алматы 2011
СОСТАВИТЕЛЬ: У.Т. Шанаев. Основы микропроцессорной техники. Часть 3. Методические указания к выполнению лабораторных работ по курсу “Основы микропроцессорной техники” для студентов всех форм обучения специальности 5B070300 – Информационные системы. – Алматы: АУЭС, 2011. – 30 с.
Предлагаемые в методической разработке работы предназначены изучению программной части микропроцессорных систем, т.е. принципов обеспечения взаимодействия работы их структурных и функциональных блоков по реализации поставленных практических задач. Тем самым, эти лабораторные работы нацелены освоению студентами основ программирования работы микропроцессорных систем на языке ассемблера.
Выполнение рабочих заданий к лабораторным занятиям осуществляются в два этапа: сначала – виртуально (на программном симуляторе), затем – на реальном устройстве (на лабораторном стенде). Программный симулятор, охваченный разнообразными функциональными элементами и отличающийся иллюстративной наглядностью их действий, предоставляет обучающимся широкие возможности для создания моделей систем с различным структурным составом и изучения их работы, тем самым обеспечивает условия для наиболее полного усвоение ими изучаемого учебного материала. Работа на реальном устройстве, с одной стороны, способствует закреплению приобретенных ранее теоретических знаний, а с другой стороны, формированию практических навыков и убеждений, необходимых им в будущей профессиональной деятельности.
Методические указания к лабораторным работам предназначены для студентов всех форм обучения по специальности 5B070300 – Информационные системы. Они могут быть использованы и для организации лабораторных занятий по идентичным темам аналогичных дисциплин, запланированных для других специальностей.
Ил. 3, табл. 3, библиогр. – 8 назв.
Рецензент: д-р. физ-мат. наук, проф. С. Б. Бимурзаев
Печатается по плану издания Некоммерческого акционерного общества “Алматинский университет энергетики и связи” на 2011 г.
© НАО “Алматинский университет энергетики и связи”, 2011 г.
Введение
Курс “Основы микропроцессорной техники”, посвященный изучению структурных принципов построения микропроцессорных систем и их функциональных основ, состоит из двух взаимосвязанных и взаимообусловленных частей: аппаратная часть (hardware) и программная часть (software). Ясно, что для наиболее полного усвоения курса требуется формирование знаний как по аппаратной, так и по программной частям курса.
В предыдущих методических разработках [1, 2] были представлены лабораторные работы, посвященные аппаратной части микропроцессорных систем, т.е. изучению принципов построения структурных блоков микропроцессорных систем и характера их функционирования.
В предлагаемой методической разработке представлены лабораторные работы, посвященные программной части микропроцессорных систем, т.е. изучению принципов обеспечения взаимодействия их структурных и функциональных блоков по реализации поставленных практических задач. Тем самым, эти работы нацелены освоению студентами основ программирования работы микропроцессорных систем на языке ассемблера.
Выполнение рабочих заданий к лабораторным занятиям осуществляются в два этапа: сначала – виртуально (на программном симуляторе), затем – на реальном устройстве (на лабораторном стенде). Программный симулятор, охваченный разнообразными функциональными элементами и отличающийся иллюстративной наглядностью их действий, предоставляет обучающимся широкие возможности для создания моделей систем с различным структурным составом и изучения их работы, тем самым обеспечивает условия для наиболее полного усвоение ими изучаемого учебного материала. Работа на реальном устройстве, с одной стороны, способствует закреплению приобретенных ранее теоретических знаний, а с другой стороны, формированию практических навыков и убеждений, необходимых им в будущей профессиональной деятельности.
Предлагаемая методика организации лабораторных занятий проверена многолетней практикой преподавания автора и испытана временем. Разнообразие форм организации учебного исследования обеспечивает более глубокие знания студентов по теории изучаемых элементов и устройств цифровых систем и способствуют формированию у них практических навыков по проведению как моделирующих, так и практических экспериментов, что в конечном счете обеспечивает достижение целей лабораторных занятий.
1 Практические сведения и общие рекомендации
Выполнение рабочих заданий к лабораторным занятиям осуществляются в два этапа: виртуально (на программном симуляторе) и на реальном устройстве (на лабораторном стенде). Основой как виртуальной, так и практической частей является микропроцессор Intel 8085.
1.1 Система команд МП Intel 8085
В таблице 1.1 представлены команды микропроцессора Intel 8085. В первой колонке таблицы приведены мнемоники команд, где приняты следующие обозначения: r – регистры, rp – регистровые пары, М – ячейка памяти при косвенной адресации, b3b2 – второй и третий байты команды, port – адрес периферийного устройства.
Во второй колонке приведены коды команд (первый байт): в случае необходимости указания адреса регистра микропроцессора – в виде восьмиразрядного двоичного числа, а в остальных случаях – в виде шестнадцатеричного числа. Для разрядов обобщенных адресов регистров приняты следующие обозначения: для источников данных (Data Source) – символ S, для приемников данных (Data Destination) – символ D, а для регистровых пар (Pair) – символ P.
В третьей колонке приведены сведения о флагах, устанавливаемых после выполнения соответствующей команды: символ “–” – никакой флаг не устанавливается, символ “+” – устанавливаются все флаги, “+” – устанавливаются все флаги, кроме флага переноса, “С” – устанавливается только флаг переноса. Эти флаги (S – отрицательности, Z – нуля, AC – десятичного переноса, P – четности, С – перенос) формируются в регистре флагов:
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
S |
Z |
0 |
AC |
0 |
P |
1 |
C |
В следующих трех колонках приведены число байтов в командах и число тактов и циклов, в течение которых выполняются команды.
В последней колонке приведены комментарии к командам.
Т а б л и ц а 1.1
Мнемокод |
Код |
Флаги |
Байты |
Такты |
Циклы |
Комментарий |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Команды пересылки |
||||||
MOV r1, r2 |
01DDDSSS |
– |
1 |
4 |
1 |
r1 ← (r2) |
MOV M, r |
01110SSS |
– |
1 |
7 |
2 |
[(HL)] ← (r) |
MOV r, M |
01DDD110 |
– |
1 |
7 |
2 |
(r) ← [(HL)] |
MVI r, b2 |
00 DDD110 |
– |
2 |
7 |
2 |
r1 ← b2 |
MVI M, b2 |
36 |
– |
2 |
10 |
3 |
[(HL)] ← b2 |
LXI rpb3b2 |
00PP0001 |
– |
3 |
10 |
3 |
rp ← b3b2 |
LDA b3b2 |
3A |
– |
3 |
13 |
4 |
A ← b3b2 |
STA b3b2 |
32 |
– |
3 |
13 |
4 |
b3b2 ← (A) |
Т а б л и ц а 1.1 (продолжение)
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
LHLD b3b2 |
2A |
– |
3 |
16 |
5 |
HL ← b3b2 |
|
SHLD b3b2 |
22 |
– |
3 |
16 |
5 |
b3b2 ← (HL) |
|
LDAX rp |
00PP0010 |
– |
1 |
7 |
2 |
A ← [(rp)] |
|
STAX rp |
00PP1010 |
– |
1 |
7 |
2 |
[(rp)] ← (A) |
|
XCHG |
EB |
– |
1 |
4 |
1 |
(HL) ↔ (rp) |
|
Команды арифметических и логических операций |
|||||||
ADD r |
10000SSS |
+ |
1 |
4 |
1 |
A ← (A) + (r) |
|
ADD M |
86 |
+ |
1 |
7 |
2 |
A ← (A) + [(HL)] |
|
ADI b2 |
C6 |
+ |
2 |
7 |
2 |
A ← (A) + b2 |
|
ADC r |
10001SSS |
+ |
1 |
4 |
1 |
A ← (A) + (r) + (TC) |
|
ADC M |
8E |
+ |
1 |
7 |
2 |
A ← (A) + [(HL)] + (TC) |
|
ACI b2 |
CE |
+ |
2 |
7 |
2 |
A ← (A) + b2 + (TC) |
|
SUB r |
10010SSS |
+ |
1 |
4 |
1 |
A ← (A) – (r) |
|
SUB M |
96 |
+ |
1 |
7 |
2 |
A ← (A) – [(HL)] |
|
SUI b2 |
D6 |
+ |
1 |
7 |
2 |
A ← (A) – b2 |
|
SBB r |
10011SSS |
+ |
1 |
4 |
1 |
A ← (A) – (r) – (TC) |
|
SBB M |
9E |
+ |
1 |
7 |
2 |
A ← (A) – [(HL)] – (TC) |
|
SBI b2 |
DE |
+ |
2 |
7 |
2 |
A ← (A) – b2 – (TC) |
|
INR r |
00DDD100 |
(+) |
1 |
4 |
1 |
r ← (r) + 1 |
|
INR M |
34 |
(+) |
1 |
10 |
3 |
[(HL)] ← [(HL)] + 1 |
|
DCR r |
00DDD101 |
(+) |
1 |
4 |
1 |
r ← (r) – 1 |
|
DCR M |
35 |
(+) |
1 |
10 |
3 |
[(HL)] ← [(HL)] – 1 |
|
INX rp |
00PP0011 |
– |
1 |
6 |
1 |
rp ← (rp) + 1 |
|
DCX rp |
00PP1011 |
– |
1 |
6 |
1 |
rp ← (rp) – 1 |
|
DAD rp |
00PP1001 |
– |
1 |
10 |
3 |
[(HL)] ← [(HL)] + (rp) |
|
DAA |
27 |
+ |
1 |
4 |
1 |
A ← (A)2-10 |
|
ANA r |
10100SSS |
+ |
1 |
4 |
1 |
A ← (A) ۸ (r) |
|
ANA M |
A6 |
+ |
1 |
4 |
1 |
A ← (A) ۸ [(HL)] |
|
ANI b2 |
E6 |
+ |
2 |
7 |
2 |
A ← (A) ۸ b2 |
|
XRA r |
10101SSS |
+ |
1 |
4 |
1 |
A ← (A) (r) |
|
XRA M |
AE |
+ |
1 |
7 |
2 |
A ← (A) [(HL)] |
|
XRI b2 |
EE |
+ |
2 |
7 |
2 |
A ← (A) b2 |
|
ORA r |
10110SSS |
+ |
1 |
7 |
2 |
A ← (A) ۷ (r) |
|
ORA M |
B6 |
+ |
1 |
7 |
2 |
A ← (A) ۷ [(HL)] |
|
ORI b2 |
F6 |
+ |
2 |
7 |
2 |
A ← (A) ۷ b2 |
|
CMP r |
10111SSS |
+ |
1 |
4 |
1 |
(A) – (r) |
|
CMP M |
BE |
+ |
1 |
4 |
1 |
(A) – [(HL)] |
|
CPI b2 |
FE |
+ |
2 |
7 |
2 |
(A) – b2 |
|
CMA |
2F |
– |
1 |
4 |
1 |
A ← |
|
STC |
37 |
C |
1 |
4 |
1 |
TC ← 1 |
|
CMC |
3F |
C |
1 |
4 |
1 |
TC ← |
|
RLC |
07 |
C |
1 |
4 |
1 |
A7-1 ← (A6-0), A0 ← (TC), TC←A7 |
|
RRC |
0F |
C |
1 |
4 |
1 |
A6-0 ← (A7-1), A7 ← (TC), TC←A0 |
|
Окончание таблицы 1.1
1 |
2 |
3 |
4 |
5 |
6 |
7 |
||
RAL |
17 |
C |
1 |
4 |
1 |
A7-1 ← (A6-0), A0 ← (A7), TC←A7 |
||
RAR |
1F |
C |
1 |
4 |
1 |
A6-0 ← (A7-1), A7 ← (A0), TC←A0 |
||
Команды управления |
||||||||
JMP b3b2 |
C3 |
– |
3 |
10 |
3 |
PC ← b3b2 |
||
Jcond b3b2 |
11CCCC01 |
– |
3 |
10 |
3 |
Cond = 1: PC ← b3b2 |
||
CALL b3b2 |
CD |
– |
3 |
18 |
5 |
SP ← (PC), PC ← b3b2 |
||
Ccond b3b2 |
11CCC100 |
– |
3 |
2/5 |
9/18 |
Cond = 1: SP ← (PC), PC ← b3b2 |
||
RET |
C9 |
– |
3 |
10 |
3 |
PC ← [(SP)] |
||
Rcond |
11CCC100 |
– |
3 |
17/11 |
5/3 |
Cond = 1: PC ← [(SP)] |
||
RST n |
111nnn111 |
– |
1 |
11 |
3 |
PC ← 8n |
||
SPHL |
E9 |
– |
1 |
6 |
1 |
SP ← (HL) |
||
Специальные команды |
||||||||
PUSH rp |
11PP0101 |
– |
1 |
11 |
3 |
SP ← (SP) – 2; [(SP)];[(SP) + 1]← (rp) |
||
PUSH PSW |
F5 |
– |
1 |
11 |
3 |
SP ← (SP) – 2; [(SP)],[(SP) + 1]←(A),(F) |
||
POP rp |
11PP0001 |
– |
1 |
10 |
3 |
rp ← [(SP)],[(SP) + 1], SP ← (SP) + 2 |
||
POP PSW |
F1 |
– |
1 |
10 |
3 |
F,A ← [(SP)],[(SP) + 1]; SP ← (SP) + 2 |
||
XTHL |
E3 |
– |
1 |
18 |
5 |
(HL) ↔ [(SP)],[(SP) + 1] |
||
PCHL |
F9 |
– |
1 |
5 |
1 |
PC ← (HL) |
||
IN port |
DB |
– |
2 |
10 |
3 |
A ← (port) |
||
OUT port |
D3 |
– |
2 |
10 |
3 |
port ← (A) |
||
EI |
FB |
– |
1 |
4 |
1 |
Разрешение на прерывание |
||
ВI |
F3 |
– |
1 |
4 |
1 |
Запрет на прерывание |
||
HLT |
76 |
– |
1 |
7 |
2 |
Останов |
||
NOP |
00 |
– |
1 |
4 |
1 |
Нет операции |
||
RIM |
20 |
– |
1 |
4 |
1 |
Чтение маски прерывания |
||
SIM |
30 |
– |
1 |
4 |
1 |
Запись маски прерывания |
||
Код любой команды микропроцессора Intel 8085 можно легко определить по таблице 1.2, путем последовательной записи наименований горизонтали и вертикали, в пересечении которых размещена искомая команда.
Т а б л и ц а 1.2
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
0 |
NOP |
LXI B |
STAX B |
INX B |
INR B |
DCR B |
MVI B |
RLC |
|
DAD B |
LDAX B |
DCX B |
INR C |
DCR C |
MVI C |
RRC |
0 |
1 |
|
LXI D |
STAX D |
INX D |
INR D |
DCR D |
MVI D |
RAL |
|
DAD D |
LDAX D |
DCX D |
INR E |
DCR E |
MVI E |
RAR |
1 |
2 |
RIM |
LXI H |
SHLD |
INX H |
INR H |
DCR H |
MVI H |
DAA |
|
DAD H |
LHLD |
DCX H |
INR L |
DCR L |
MVI L |
CMA |
2 |
3 |
SIM |
LXI SP |
STA |
INX SP |
INR M |
DCR M |
MVI M |
STC |
|
DAD SP |
LDA |
DCX SP |
INR A |
DCR A |
MVI A |
CMC |
3 |
4 |
MOV B,B |
MOV B,C |
MOV B,D |
MOV B,E |
MOV B,H |
MOV B,L |
MOV B,M |
MOV B,A |
MOV C,B |
MOV C,C |
MOV C,D |
MOV C,E |
MOV C,H |
MOV C,L |
MOV C,M |
MOV C,A |
4 |
5 |
MOV D,B |
MOV D,C |
MOV D,D |
MOV D,E |
MOV D,H |
MOV D,L |
MOV D,M |
MOV D,A |
MOV E,B |
MOV E,C |
MOV E,D |
MOV E,E |
MOV E,H |
MOV E,L |
MOV E,M |
MOV E,A |
5 |
6 |
MOV H,B |
MOV H,C |
MOV H,D |
MOV H,E |
MOV H,H |
MOV H,L |
MOV H,M |
MOV H,A |
MOV L,B |
MOV L,C |
MOV L,D |
MOV L,E |
MOV L,H |
MOV L,L |
MOV L,M |
MOV L,A |
6 |
7 |
MOV M,B |
MOV M,C |
MOV M,D |
MOV M,E |
MOV M,H |
MOV M,L |
HLT |
MOV M,A |
MOV A,B |
MOV A,C |
MOV A,D |
MOV A,E |
MOV A,H |
MOV A,L |
MOV A,M |
MOV A,A |
7 |
8 |
ADD B |
ADD C |
ADD D |
ADD E |
ADD H |
ADD L |
ADD M |
ADD A |
ADC B |
ADC C |
ADC D |
ADC E |
ADC H |
ADC L |
ADC M |
ADC A |
8 |
9 |
SUB B |
SUB C |
SUB D |
SUB E |
SUB H |
SUB L |
SUB M |
SUB A |
SBB B |
SBB C |
SBB D |
SBB E |
SBB H |
SBB L |
SBB M |
SBB A |
9 |
A |
ANA B |
ANA C |
ANA D |
ANA E |
ANA H |
ANA L |
ANA M |
ANA A |
XRA B |
XRA C |
XRA D |
XRA E |
XRA H |
XRA L |
XRA M |
XRA A |
A |
B |
ORA B |
ORA C |
ORA D |
ORA E |
ORA H |
ORA L |
ORA M |
ORA A |
CMP B |
CMP C |
CMP D |
CMP E |
CMP H |
CMP L |
CMP M |
CMP A |
B |
C |
RNZ |
POP B |
JNZ |
JMP |
CNZ |
PUSH B |
ADI |
RST 0 |
RZ |
RET |
JZ |
|
CZ |
CALL |
ACI |
RST 1 |
C |
D |
RNC |
POP D |
JNC |
OUT |
CNC |
PUSH D |
SUI |
RST 2 |
RC |
|
JC |
IN |
CC |
|
SBI |
RST 3 |
D |
E |
RPO |
POP H |
JPO |
XTHL |
CPO |
PUSH H |
ANI |
RST 4 |
RPE |
PCHL |
JPE |
XCHG |
CPE |
|
XRI |
RST 5 |
E |
F |
RP |
POP PSW |
JP |
DI |
CP |
PUSH PSW |
ORI |
RST 6 |
RM |
SPHL |
JM |
EI |
CM |
|
CPI |
RST 7 |
F |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
1.2 Оборудование рабочего места:
- компьютер;
- программа 8085 Simulator IDE;
- лабораторный стенд PU-2000 фирмы Degem Systems;
- съемные платы EB-151 и EB-152;
- соединительные провода и перемычки.
1.3 Описание рабочего места
Для выполнения виртуальной части работы на компьютере должна быть установлена программа 8085 Simulator IDE. Структура симулятора и использование его функциональных возможностей будет описаны постепенно в процессе выполнения лабораторных работ. Здесь же приведем краткое описание порядка организации работы на лабораторном стенде.
Центральным звеном микропроцессорной системы (микрокомпьютера) на лабораторном стенде является микропроцессор (МП) Intel 8085, который реализует выполнение задачи, предписанных программой (а именно, осуществляет передачу данных между различными ее модулями, выполняет арифметические и логические операции), а также управляет синхронизированной работой всех модулей МПС.
Память системы реализован в двух микросхемах:
- микросхема 2764 (EPROM, Erasable Programmable Read-Only Memory), используемое для хранения управляющей программы;
- микросхема 6116 (RAM, Random Access Memory), используемое для хранения рабочей программы и данных. Рабочая область ОЗУ, выделенная для записи программы, начинается с адреса 2100H.
В качестве порта ввода используются восемь переключателей, а в качестве порта вывода – восемь светодиодных индикаторов.
Указанные компоненты системы, размещены на плате EB-151.
На плате EB-152 размещены:
- клавиатура, с помощью которой вводится в память рабочая программа и данные, необходимые для ее работы;
- дисплей, с помощью которой осуществляется отображение данных, содержащихся в регистрах микропроцессора и в ячейках памяти, т.е. их считывание.
Подготовка рабочего места, т.е. системы, для выполнения лабораторной работы осуществляется следующим образом:
- установить плату EB-151 на лабораторный стенд, а плату EB-152 слева от него. Обеспечить совместимость плат EB-151 и EB-152 по питанию и возможность передачи данных между ними, выполнив следующие соединения между ними:
PU-2000 |
|
EB-152 |
+12 V |
↔ |
+12 V |
–12 V |
↔ |
–12 V |
+5 V |
↔ |
+5 V |
GND |
↔ |
GND |
RX |
↔ |
TX |
TX |
↔ |
RX |
- установить переключатель S1 (SIG.ANAL/KB+DISP) на плате EB-152 в положение KB+DISP (или убедится в этом). Включить источник питания стенда и удостовериться в том, что дисплей EB-152 показывает “EBHt”;
- перезапустить микрокомпьютер на плате EB-151 кратковременным нажатием кнопки “Reset” на этой плате. При правильном выполнении необходимых соединений дисплей на плате EB-152 должен показывать “Eb-151”, в противном случае необходимо проверить правильность соединений.
Для записи учебной программы (т.е. программы пользователя) в ОЗУ нажать клавишу MEM и ввести адрес первой ячейки памяти в адресное поле дисплея. Ввести необходимое значение кода в поле данных дисплея и нажать клавишу ENTER, при этом адрес ячейки памяти увеличится на единицу автоматически и можно будет ввести следующие данные (код операции или значение операнда). И т.д.
Проверка содержимого ячеек памяти осуществляется аналогично, т.е. нажатием клавиши MEM и вводом в адресное поле дисплея адреса первой проверяемой ячейки памяти. В дальнейшем нажимая клавишу ENTER можно последовательно изменять адреса ячеек и считывать их содержимое. При необходимости, разумеется, их можно изменить.
Для проверки содержимого регистров микропроцессора нажать клавишу REG и ввести номер регистра в адресное поле дисплея, после чего в поле данных дисплея отобразится содержимое указанного регистра. Аналогично можно просмотреть содержимое и других регистров. Номера проверяемых регистров можно изменять последовательно (см. таблицу 1.3) просто нажатием клавиши ENTER.
Т а б л и ц а 1.3
Номера регистров |
Регистры |
Описание регистра |
1 |
A |
Аккумулятор |
2 |
B |
Регистр B |
3 |
C |
Регистр C |
4 |
D |
Регистр D |
5 |
E |
Регистр E |
6 |
H |
Регистр H |
7 |
L |
Регистр L |
8 |
F |
Регистр флагов |
9 |
I |
Маска прерывания |
A |
PC |
Программный счетчик |
B |
SP |
Указатель стека |
C |
HL |
Указатель памяти |
D |
AF |
Слово состояния процессора |
E |
BC |
Регистровая пара BC |
F |
DE |
Регистровая пара DE |
Запуск программы к работе осуществляется нажатием клавиши GO и вводом начального адреса программы, затем клавиши ENTER.
2 Лабораторная работа. Пересылки данных
Цель работы:
- знакомство со структурой микропроцессорной системы (МПС) на основе микропроцессора Intel 8085;
- изучение действий, выполняемых командами пересылки данных из состава команд микропроцессора Intel 8085, различающихся способами адресации;
- изучение функциональных возможностей программного симулятора МПС на основе микропроцессора Intel 8085;
- освоение порядка работы с лабораторным стендом, предназначенным для изучения программирования на языке Ассемблер.
2.1 Рабочее задание
2.1.1 В C:\Program Files\8085 Simulator IDE создать папку под именем, содержащем достаточную информацию о студенте (номер группы, фамилию и имя) и в дальнейшем сохранять все создаваемые файлы в нем.
2.1.2 Запустить программу симулятора иконой . В открывшемся основном окне симулятора (см. рисунок 2.1) выбрать Tools/Assembler и в окне Assembler – File/New.
Рисунок 2.1
2.1.3 Сдвинув курсор на табулированное расстояние (клавишей Tab), ввести первую команду представленной ниже программы и нажать Enter. Аналогично продолжить ввод остальных команд программы. Метки записываются в начале строки. Сохранить (File/Save As) записанную программу под именем Transfers (Пересылки). Создается файл с расширением asm.
;WRITING to MEMORIES
SW: ;Single Writing
MVI A,0FH;Direct Loading
STA 00D0H;Direct Writing
NOP
S1: ;Serial Writing-1
MVI C,07h;Data Counter
LXI D,00D0H;Initial Address
MVI A,00H;Cleaning
T0: ADI 13H;Expansion Step
INX D;Address Increment
STAX D;Indirect Writing
DCR C;Monitoring of the Data Counter
JNZ T0;Continue
XCHG;Exchange
NOP
S2: ;Serial Writing-2
MVI C,08H;Data Counter
T1: ADI 09H;Expansion Step
INX H;Address Increment
MOV M,A;Indirect Writing
DCR C;Monitoring of the Data Counter
JNZ T1;Continue
NOP
AW: ;Data Access and Writing
LXI D,00EFH;Initial Address
MVI C,08H;Data Counter
T2: MOV A,M;Indirect Loading
STAX D;Indirect Writing
DCX H;Address Decrement
DCX D;Address Decrement
DCR C;Monitoring of the Data Counter
JNZ T2;Continue
NOP
AC: ;Data Access, Conversion and Writing
MVI C,07H;Data Counter
T3: MOV A,M;Indirect Loading
RLC;Left Shift
XCHG;Exchange
MOV M,A;Indirect Writing
DCX H;Address Decrement
DCX D;Address Decrement
XCHG;Exchange
DCR C;Monitoring of the Data Counter
JNZ T3;Continue
NOP
SA: ;Single Access and Writing
LDA 00D0H;Direct Loading
STA 00E0H;Direct Writing
HLT;Ending
В этой программе, составленной в виде нескольких блоков, осуществляются пересылки данных между процессором и памятью. В первом блоке (Single Writing-1) осуществляется одиночная пересылка в память командой с прямой адресацией. Во втором блоке (Serial Writing) реализуется передача массива данных (в виде членов арифметической прогрессии) в память командой с косвенной адресацией. Более практичный способ передачи массива данных представлен в следующем блоке (Single Writing-2).
В следующих трех блоках (Data Access, Data Access and Conversion, Single Writing) осуществляются пересылки данных из одного участка памяти в другой с использованием аналогичных использованным ранее командам (только в обратном порядке).
2.1.4 В окне Assembler выбрать Tools/Assemble&Load. Создаются файлы с расширениями hex, lst, obj.
2.1.5 В основном окне симулятора выбрать Tools/Breakpoints Manager и установить контрольные точки после каждого блока, т.е. в строках с командой NOP (см. рисунок 2.2).
2.1.6 В основном окне симулятора выбрать скорость моделирования (Rate/…), например, Rate/Normal и запустить работу симулятора (Simulation/Start).
2.1.7 После каждой остановки программы в контрольных точках проанализировать действия команд в выполненном блоке и полученные результаты (в регистрах микропроцессора и в соответствующих ячейках памяти).
2.1.8 Продолжить работу симулятора, выбрав скорость моделирования (Rate/…).
Рисунок 2.2
При необходимости (или при желании) можно выполнить отдельные блоки программы раздельно. Для этого в первую строку программы ввести команду JMP с меткой блока и заменить команду NOP в конце блока на команду HLT.
2.1.9 Подготовить микрокомпьютер (лабораторный стенд) к работе (см. 1.3) и ввести в ячейки памяти микрокомпьютера коды команд отдельных блоков представленной программы. Коды команд можно определить с помощью таблицы 1.2 или воспользоваться полученными в предыдущих опытах кодами (например, в Memory Editor). Адреса переходов, разумеется, должны быть скорректированы в соответствии практическим размещением блоков программы в памяти системы. Каждый блок завершить командой RST7.
2.1.10 Запустить отдельные блоки программы на выполнение нажатием клавиши GO и вводом начального адреса блока (см. 1.3).
2.1.11 Проанализировать работу отдельных блоков программы на микрокомпьютере, сопоставляя данные, полученные на нем с данными на симуляторе.
2.2 Контрольные задания
1. Объяснить внутреннюю структуру микропроцессора и функции ее составляющих.
2. Объяснить действия команд пересылок, использованных в отдельных блоках программы.
3 Лабораторная работа. Однобайтная арифметика
Цель работы:
- изучение действий, выполняемых однобайтными арифметическими командами (сложения и вычитания);
- освоение принципов организации циклических программных структур;
- освоение принципов организации работы с периферийными устройствами.
3.1 Рабочее задание
3.1.1 Запустить программу симулятора иконой . В открывшемся основном окне симулятора выбрать Tools/Assembler, а затем File/New.
3.1.2 Ввести представленную ниже программу. Сохранить записанную программу под именем Single-Byte Arithmetic (Однобайтная арифметика).
;SINGLE-BYTE ARITHMETIC
DA: ;Data Array (arithmetical progression)
LXI H,00E0H;Initial Address
MVI C,0AH;Data Quantity
MVI A,00H;Cleaning
MOV M,C;Writing in the Memory
SD: INX H;Address Increment
ADI 55H;Increment Step of the Linear Series
MOV M,A;Writing in the Memory
DCR C;Monitoring of the Data Counter
JNZ SD;Continue
NOP
CS: ;Cumulative Summation
;SUM=((2a1+(n-1)d)/2)n
;a1-first operand,n-quantity,d-step,
LXI H,00E0H;Initial Address
MVI A,00H;Cleaning
MOV B,A;Cleaning
MOV C,M;Installation of the Data Counter
C1: INX H;Address Increment
ADD M;Addition
JNC C2;Carry Monitoring
INR B;Carry Accumulation
C2: DCR C;Monitoring of the Data Counter
JNZ C1;Continue
NOP
RR: ;Retention of Result
INX H;
MOV M,A;Low Byte
INX H;
MOV M,B;High Byte
NOP
SS: ;Series Subtraction
LXI H,00E0H;Initial Address
MOV C,M;Installation of the Data Counter
S1: INX H;Address Increment
SUB M;Subtraction
JNC S2;Borrow Monitoring
DCR B;Borrow Subtraction
S2: DCR C;Monitoring of the Data Counter
JNZ S1;Continue
NOP
AD: ;ALTERNATIVE of the Single-Byte Summation
;Data
IN 01H;First Operand
MOV E,A
IN 01H;Data Quantity
MOV C,A
IN 02H;Step
MOV D,A
LXI H,0000H
NOP
AC ;Cumulative Summation-A
A1: MOV A,E
ADD D
MOV E,A
MOV A,L
ADD E
JNC A2
INR H
A2: MOV L,A
DCR C
JNZ A1
MOV A,L
OUT 03H
MOV A,H
OUT 04H
HLT;Ending
Эта программа состоит из следующих блоков:
- Data Array – осуществляет запись данных в память в виде членов арифметической прогрессии (заданные параметры n = 0AH – количество членов, a1 = 00H – первый член, d = 55H – шаг прогрессии можно изменить в процессе выполнения работы);
- Cumulative Summation – определяет сумму членов арифметической прогрессии, записанных в память в предыдущем блоке программы;
- Retention of Result – сохраняет в памяти полученный результат суммирования;
- Series Subtraction – осуществляет последовательное вычитание членов арифметической прогрессии из полученной ранее суммы;
- ALTERNATIVE of the Single-Byte Summation, состоящий из двух подблоков (Data и Cumulative Summation-A) – реализует другой способ определения суммы членов арифметической прогрессии с использованием периферийных устройств (IN, OUT).
3.1.3 В окне Assembler выбрать Tools/Assemble&Load.
3.1.4 В основном окне симулятора выбрать Tools/Breakpoints Manager и установить контрольные точки после каждого блока, т.е. в строках с командой NOP.
3.1.5 В окне симулятора открыть окно Tools/Peripheral Devices. В открывшемся окне Peripheral Devices нажать кнопку Device 1 и определить адрес порта как 01, а затем установить этот порт на IN. Аналогично определить адрес следующего порта как 02, и установить его также на IN. Определив адреса следующих портов как 03 и 04, установить их на OUT (см. рисунок 3.1).
3.1.6 В основном окне симулятора выбрать скорость моделирования (Rate/…) и запустить работу симулятора (Simulation/Start).
3.1.7 После каждой остановки программы в контрольных точках проанализировать действия команд в выполненном блоке и полученные результаты (в регистрах микропроцессора и в соответствующих ячейках памяти).
3.1.8 Продолжить работу симулятора, выбрав скорость моделирования (Rate/…).
Проверить соответствие полученных результатов суммирования с вычисленным по формуле .
При необходимости (по указанию преподавателя) выполнить отдельные блоки программы раздельно. Для этого в первую строку программы ввести команду JMP с меткой блока и заменить команду NOP в конце блока на команду HLT.
Рисунок 3.1
3.1.9 Подготовить микрокомпьютер (лабораторный стенд) к работе (см. 1.3 и 2.1.9). Ввести в ячейки памяти микрокомпьютера коды команд отдельных блоков представленной программы.
3.1.10 Запустить отдельные блоки программы на выполнение нажатием клавиши GO и вводом начального адреса блока (см. 1.3).
3.1.11 Проанализировать работу отдельных блоков программы на микрокомпьютере, сопоставляя данные, полученные на нем с данными на симуляторе.
3.2 Контрольные задания
1. Объяснить структуры отдельных блоков программы и действия команд в них.
2. Объяснить принципы организации работы с периферийными устройствами.
4 Лабораторная работа. Двухбайтная арифметика
Цель работы:
- изучение порядка выполнения арифметических операций (сложения и вычитания) над двухбайтными (и более) операндами;
- освоение альтернативных возможностей выполнения арифметических операций над двухбайтными операндами.
4.1 Рабочее задание
4.1.1 Запустить программу симулятора и в открывшемся окне выбрать Tools/Assembler, а затем File/New.
4.1.2 Ввести представленную ниже программу. Сохранить записанную программу под именем Double-Byte Arithmetic (Двухбайтная арифметика).
;DOUBLE-BYTE ARITMETIC
;Data Array (arithmetical progression)
LXI H,00E0H;initial address
MVI C,0AH;data quantity
MOV M,C
MVI A,00H;low byte
MVI B,12H;high byte
DD: ADI 15H;step of the low byte=15H
INR B;step of the high byte=01H
INX H
MOV M,A;loading in the low byte memory
INX H
MOV M,B;loading in the high byte memory
DCR C;monitoring of the data counter
JNZ DD;continue
NOP
CC: ;Cumulative Summation
;SUM=((2a1+(n-1)d)/2)n
;a1-first operand,n-quantity,d-step,
LXI H,00E0H;initial address
LXI D,0000H;temporary repository for the result
MOV B,M;installation of the data counter
MOV C,B;doublet of the data counter
CS: MOV A,E
INX H
ADD M;low byte
MOV E,A
MOV A,D
INX H
ADC M;high byte
MOV D,A
DCR B;monitoring of the data counter
JNZ CS;continue
NOP
AD: ;Addition with Direct Addressing
MOV A,E
ADI 3DH;low byte
MOV E,A
MOV A,D
ACI 5AH;high byte
MOV D,A
NOP
RR: ;Retention of the Result
INX H;
MOV M,E;low byte
INX H;
MOV M,D;high byte
NOP
SS: ;Series Subtraction
LXI H,00E0H
S0: MOV A,E
INX H
SUB M;low byte
MOV E,A
MOV A,D
INX H
SBB M;high byte
MOV D,A
DCR C;monitoring of the data counter
JNZ S0;continue
NOP
SD: ;Subtraction with Direct Addressing
MOV A,E
SUI 3DH;low byte
MOV E,A
MOV A,D
INX H
SBI 5AH;high byte
MOV D,A
NOP
AL: ;ALTERNATIVE of the Double-Byte Summation
LDA 00E0H
MOV C,A;data counter
LXI SP,00E1H;initial address
LXI H,0000H;Double-Byte Accumulator
AS: POP D;Pulling
DAD D;Double-Byte Summation
DCR C;monitoring of the data counter
JNZ AS;continue
LXI B,5A3DH
DAD B
HLT
Эта программа состоит из следующих блоков:
- Data Array – осуществляет запись данных в память в виде членов арифметической прогрессии (заданные параметры n = 0AH – количество членов, a1 = 1200H – первый член, d = 0115H – шаг прогрессии можно изменить в процессе выполнения работы). Сформированный член прогрессии сохраняется в двух ячейках памяти (сначала – младший байт, затем – старший байт);
- Cumulative Summation – определяет сумму членов арифметической прогрессии, записанных в память в предыдущем блоке программы;
- Addition with Direct Addressing – осуществляет суммирование командами с непосредственной адресацией;
- Retention of Result – сохраняет в памяти полученный результат суммирования;
- Series Subtraction – осуществляет последовательное вычитание членов арифметической прогрессии из полученной ранее суммы;
- Subtraction with Direct Addressing – осуществляет вычитание командами с непосредственной адресацией;
- ALTERNATIVE of the Double-Byte Summation – реализует другой способ определения суммы членов арифметической прогрессии с использованием команд двухбайтного сложения DAD.
4.1.3 В окне Assembler выбрать Tools/Assemble&Load.
4.1.4 В основном окне симулятора выбрать Tools/Breakpoints Manager и установить контрольные точки после каждого блока, т.е. в строках с командой NOP.
4.1.5 В основном окне симулятора выбрать скорость моделирования (Rate/…) и запустить работу симулятора (Simulation/Start).
4.1.6 После каждой остановки программы в контрольных точках проанализировать действия команд в выполненном блоке и полученные результаты (в регистрах микропроцессора и в соответствующих ячейках памяти).
4.1.7 Продолжить работу симулятора, выбрав скорость моделирования (Rate/…).
Проверить соответствие полученных результатов суммирования с вычисленным по формуле .
При необходимости (по указанию преподавателя) выполнить отдельные блоки программы раздельно. Для этого в первую строку программы ввести команду JMP с меткой блока и заменить команду NOP в конце блока на команду HLT.
4.1.8 Подготовить микрокомпьютер (лабораторный стенд) к работе (см. 1.3) и ввести в ячейки памяти микрокомпьютера коды команд отдельных блоков представленной программы.
4.1.9 Запустить отдельные блоки программы на выполнение нажатием клавиши GO и вводом начального адреса блока (см. 1.3).
4.1.10 Проанализировать работу отдельных блоков программы на микрокомпьютере, сопоставляя данные, полученные на нем с данными на симуляторе.
4.2 Контрольные задания
1. Объяснить структуры отдельных блоков программы и действия команд в них.
2. Объяснить различия действий арифметических команд с переносом и без переноса.
3. Объяснить принципы организации сложения двухбайтных данных с помощью команд DAD.
5 Лабораторная работа. Программа умножения
Цель работы:
- изучение порядка составления программы арифметического умножения двух однобайтных чисел;
- освоение принципов организации работы с периферийными устройствами.
5.1 Алгоритм умножения
В микропроцессоре Intel 8085 отсутствует команда умножения, поэтому для операции умножения приходится составлять соответствующую программу. Определим алгоритм умножения. С целью наглядного объяснения машинного алгоритма, ниже приведены три варианта реализации процесса умножения десятичных чисел по известному со школьной скамьи алгоритму:
|
|
|
В первом варианте приведен привычный для нас порядок умножения, начиная с младшего разряда множителя и со сдвигом частичных произведений налево. Во втором варианте приведен порядок умножения, начиная со старшего разряда множителя и со сдвигом частичных произведений направо. В третьем варианте учтено, что возможное число разрядов результата умножения двух чисел с одинаковым числом разрядов (в нашем примере – четыре) в два раза больше чем у множителей. Поэтому в начале операции значение произведения принято восьмиразрядным нулем. Для того, чтобы частичные сложения осуществлялись над числами с одинаковым числом разрядов, первый множитель расширен до восьми разрядов (добавлением нулей слева) и операции сдвига (они указаны стрелками) осуществляются перед началом каждого частичного умножения. Именно такой алгоритм был принят для программной реализации умножения. двухбайтных двоичных чисел:
- ввиду того, что результат умножения восьмиразрядных чисел будет шестнадцатиразрядным числом и в связи с тем, что частичные сложения выполняются также над шестнадцатиразрядными числами, в качестве шестнадцатиразрядного аккумулятора была принята регистровая пара HL, которая очищается в начале выполнения программы;
- В регистр E регистровой пары DE вводится первое число (множимое), а регистр D обнуляется, в результате чего множимое становится шестнадцатиразрядным числом;
- с целью обеспечения возможности сдвига, второе число (множитель) помещается в аккумуляторе (во избежания путаницы его в дальнейшем будем называть регистром A);
- для обеспечения контроля над числом операций сдвига, число разрядов множителя (восемь) помещается в регистр С;
- перед осуществлением каждого частичного умножения накопившийся до этого результат (в регистровой паре HL) сдвигается влево (путем удваивания);
- очередное значение зазряда множителя определяется путем сдвига содержимого регистра A (множителя) влево и в случае равенства его нулю –частичное умножение этим и завершается (т.е. предыдущим сдвигом регистровой пары HL), а при равенства его единице – к содержимому регистровой пары HL добавляется содержимое регистровой пары DE;
- после каждого частичного умножения содержимое счетчика сдвига убавляется на единицу и при равенстве его нулю – программа умножения завершает свою работу.
Итак, операция сдвига выполняется восемь раз, а число операции сложения определяется числом единиц в составе множителя.
5.2 Рабочее задание
5.2.1 Запустить программу симулятора и в открывшемся окне выбрать Tools/Assembler, а затем File/New.
5.2.2 Ввести представленную ниже программу. Сохранить записанную программу под именем Multiplication (Умножение).
M: ;MULTIPLICATION
;Data
IN 01H
MOV E,A
MVI D,00H
IN 02H
LXI H,0000H
MVI C,08H
;Implementation
M1: DAD H
RLC
JNC M2
DAD D
M2: DCR C
JNZ M1
MOV A,L
OUT 03H
MOV A,H
OUT 04H
HLT
Эта программа состоит из двух блоков: в блоке Data осуществляется ввод значений множителей и подготовка данных к умножению, а в блоке Implementation реализуется процесс умножения введенных данных.
5.2.3 В окне Assembler выбрать Tools/Assemble&Load.
5.2.4 В окне симулятора открыть окно Tools/Peripheral Devices. В открывшемся окне Peripheral Devices определить адреса портов между 01…04 и первые два порта (с адресами 01 и 02) установить на IN, а остальные на OUT.
5.2.5 В основном окне симулятора выбрать Tools/Breakpoints Manager и установить контрольную точку в строке с командой DAD H (т.е. перед осуществлением очередного частичного умножения).
5.2.6 В основном окне симулятора выбрать скорость моделирования (Rate/…) и запустить работу симулятора (Simulation/Start).
5.2.7 После каждой остановки программы в контрольной точке проанализировать действия команд в предыдущем этапе и полученные результаты (в регистрах микропроцессора).
5.2.8 Продолжить работу симулятора, выбрав скорость моделирования (Rate/… или другую опцию).
5.2.9 Подготовить микрокомпьютер (лабораторный стенд) к работе (см. 1.3 и 2.1.9) и ввести в ячейки памяти микрокомпьютера коды команд отдельных блоков представленной программы и значения множителей.
5.2.10 Запустить программу на выполнение нажатием клавиши GO и вводом ее начального адреса (см. 1.3).
5.2.11 Проанализировать работу программы на микрокомпьютере, сопоставляя данные, полученные на нем с данными на симуляторе.
5.3 Контрольные задания
1. Объясните алгоритм умножения, принятого в качестве основы для его программной реализации.
2. Объясните структуру программы умножения.
6 Лабораторная работа. Работа со стеком
Цель работы:
- освоение принципов организации работы с подпрограммами;
- освоение принципов организации работы со стеком.
6.1 Постановка задачи
Основная программа работы микропроцессорной системы обычно имеет в своем составе несколько подпрограмм, вызываемых из нее и предназначенных для выполнения определенных задач.
При организации работы с подпрограммами необходимо обеспечить возможность возвращения к основной программе после завершения работы вызванной подпрограммы. Для этого выделяется некоторая область памяти для стека назначением адреса его дна, т.е. указателя стека SP.
При вызове подпрограммы адрес следующей команды основной программы, к которому необходимо возвратиться после завершения работы подпрограммы, сохраняется в стеке. Каждая подпрограмма должна завершаться командой RET, обеспечивающей возврат к основной программе.
При необходимости данные в регистрах (точнее, в регистровых парах) могут быть сохранены в стеке с помощью команды PUSH, которые затем считываются оттуда командой POP.
С целью рассмотрения структуры и порядка организации работы с подпрограммами и со стеком в работе рассматривается программа решения задачи по выражению y = a1*a2 + a3*a4 + .
6.2 Рабочее задание
6.2.1 Запустить программу симулятора и в открывшемся окне выбрать Tools/Assembler, а затем File/New.
6.2.2 Ввести представленную ниже программу. Сохранить записанную программу под именем Stack (Стек).
;SUM=a1*a2+a3*a4+sum(ai,n,d)
LXI SP,0FFH
MVI B,0A0H
;mul1=a1*a2
IN 01H;first multiplier
MOV E,A
IN 02H;second multiplier
CALL MUL
PUSH H
CALL PER
NOP
;mul2=a3*a4
IN 01H;first multiplier
MOV E,A
IN 02H;second multiplier
CALL MUL
PUSH H
CALL PER
NOP
;sum(ai,n,d)
IN 01H;quantity - n
MOV C,A
IN 02H;step - d
MOV D,A
IN 01h;first operand - a1
MOV D,A
LXI H,0000H
CALL SUM
CALL PER
NOP
;S3
POP D
DAD D
POP D
DAD D
CALL PER
HLT
MUL: ;Multiplication (subroutine)
MVI D,00H
LXI H,0000H
MVI C,08H
M1: DAD H
RLC
JNC M2
DAD D
M2: DCR C
JNZ M1
RET
SUM: ;Cumulative Summation (subroutine)
CS3: MOV A,E
ADD D
MOV E,A
MOV A,L
ADD E
JNC CS4
INR H
CS4: MOV L,A
DCR C
JNZ CS3
RET
PER: ;Displaying on the Periphery
;and Writing on the Memory
MOV C,B
MVI B,00H
MOV A,L
OUT 03H
STAX B
INR C
MOV A,H
OUT 04H
STAX B
INR C
MOV B,C
RET
Основная часть программы состоит из следующих блоков:
- SUM – заголовок основной программы, где присваивается значение указателю стека SP и информация, предназначенная для организации работы подпрограммы отображения результатов на устройстве вывода;
- mul1 и mul2 – осуществляется ввод данных для умножения и вызывается подпрограмма умножения, а затем – подпрограмма отображения;
- sum – осуществляется ввод данных для суммирования и вызывается подпрограмма суммирования, а затем – подпрограмма отображения;
- S3 – вычисляет конечный результат, т.е. суммирует частичные результаты, полученные в предыдущих этапах.
В программе используются три подпрограммы:
- Multiplication – осуществляет умножение двух чисел, введенных перед вызовом подпрограммы;
- Cumulative Summation – осуществляет суммирование предварительно введенных данных;
- Displaying – осуществляет отображение полученных в подпрограммах результатов и сохраняет их в памяти.
6.2.3 В окне Assembler выбрать Tools/Assemble&Load.
6.2.4 В окне симулятора открыть окно Tools/Peripheral Devices. В открывшемся окне Peripheral Devices определить адреса портов между 01…04 и первые два порта (с адресами 01 и 02) установить на IN, а остальные на OUT.
6.2.5 В основном окне симулятора выбрать Tools/Breakpoints Manager и установить контрольные точки после каждого блока основной части программы, т.е. в строках с командой NOP.
6.2.6 В основном окне симулятора выбрать скорость моделирования (Rate/…) и запустить работу симулятора (Simulation/Start).
6.2.7 После каждой остановки программы в контрольных точках проанализировать действия команд в выполненном блоке и полученные результаты (в регистрах микропроцессора и в соответствующих ячейках памяти).
6.2.8 Продолжить работу симулятора, выбрав скорость моделирования (Rate/…).
6.2.9 Подготовить микрокомпьютер (лабораторный стенд) к работе (см. 1.3 и 2.1.9) и ввести в ячейки памяти микрокомпьютера коды команд отдельных блоков представленной программы.
6.2.10 Запустить программу на выполнение нажатием клавиши GO и вводом начального адреса блока (см. 1.3).
6.2.11 Проанализировать работу отдельных блоков программы на микрокомпьютере, сопоставляя данные, полученные на нем с данными на симуляторе.
6.3 Контрольные задания
1. Объясните принципы организации работы с подпрограммами.
2. Объясните принципы организации работы со стеком.
Список литературы
1. Шанаев О.Т. Основы микропроцессорной техники. Часть 1. Методические указания к выполнению лабораторных работ . – Алматы: АУЭС, 2011.
2. Шанаев О.Т. Основы микропроцессорной техники. Часть 2. Методические указания к выполнению лабораторных работ . – Алматы: АУЭС, 2011.
3. Шанаев О.Т. Система моделирования Electronic Workbench / на казахском и русском языках. – Алматы: АИЭС, 2003.
4. Токхайм Р. Микропроцессоры. Курс и упражнения: Пер. с. англ. – М.: Мир, 1988.
5. Угрюмов Е. П. Цифровая схемотехника. – СПб.: БХВ-Петербург, 2004.
6. Сугано Т. Дж., Уидмер Н. С. Цифровые системы. Теория и практика: Пер. с англ. – М.: Издательский дом “Вильямс”, 2004.
7. Хамахер К. И др. Организация ЭВМ. Пер. с. англ. – СПб.: Питер, 2003.
8. Уэйкерли Дж. Ф. Проектирование цифровых устройств: Пер. с. англ. – М.: Постмаркет, 2002.
Содержание
1 Практические сведения и общие рекомендации
2 Лабораторная работа. Пересылки данных
3 Лабораторная работа. Однобайтная арифметика
4 Лабораторная работа. Двухбайтная арифметика
5 Лабораторная работа. Программа умножения
6 Лабораторная работа. Работа со стеком
Дополнительный план 2011 г., поз. 2