Нижегородский государственный технический университет им.
Кафедра «Вычислительные системы и технологии»
Лабораторная работа №1
Знакомство с программной моделью микропроцессора КР580ВМ80
Выполнил:
студент группы 10-В-1
Проверил:
Нижний Новгород
2012
Цель работы
Целью работы №1 является знакомство c программной моделью микропроцессора КР580ВМ80, пакетом “Моделирование цифровых систем” и программированием простейших задач в кодах процессора.
Задача
Написать программу, которая выводит на индикатор заданную преподавателем последовательность символов.
Схема микро-ЭВМ на процессоре КР580ВМ80А

Распределение регистров процессора и ячеек памяти
Регистр A | Регистр общего назначения. Используется для выполнения арифметических операций, логических операций и записи в память. |
Регистр B | Используется для хранения текущего символьного места для вывода на индикатор. |
Регистр C | Регистр – счетчик, для условных переходов. |
Регистры D и E | Используются для хранения адреса выводимого символа. |
Регистр H | Используется для отображения строки сначала, после того как она полностью «пробежит» на индикаторе. |
Регистр L | Используется для определения адреса начального символа на текущем такте отображения строки на индикаторе. |
0000h – 03FFh | Область физической памяти. (Только чтение). |
8000h | Регистр кода позиции DD5, управление входом индикатора (C1 – C8). (Только запись). |
8001h | Регистр кода сегментов DD6, управление входом индикатора (0 – 8 ). (Только запись). |
8002h | Регистр кода сегментов DD7, управление входом индикатора (9 – 12 ). (Только запись). |
Алгоритм работы программы.
Листинг
:start
org 0h
lxi sp,0600h
mvi a,01h ;where
sta 8000h ;where
lxi h,0001h ;this
shld 8001h ;this
mvi c,3
:c1
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
add a; mvi a,02h ;where
sta 8000h ;where
lxi h,0001h ;this
shld 8001h ;this
dcr c
jnz c1
;//////////////// 5 position
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
mvi a,010h ;where
sta 8000h ;where
lxi h,0030h ;this
shld 8001h ;this
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
mvi a,08h
;////////////////
mvi c,4
:c2
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
add a; mvi a,02h ;where
sta 8000h ;where
lxi h,0008h ;this
shld 8001h ;this
dcr c
jnz c2
;////////////////8 position
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
;add a ;where
sta 8000h ;where
lxi h,006h ;this
shld 8001h ;this
sta 8000h ;where
lxi h,000h ;this
shld 8001h ;this
;/////////////////
sta 8000h ;where
lxi h,001h ;this
shld 8001h ;this
mvi c,3
:c3
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
rrc ;add a; mvi a,02h ;where
sta 8000h ;where
lxi h,0001h ;this
shld 8001h ;this
dcr c
jnz c3
;//////////////////////////////5 position
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
;add a ;where
sta 8000h ;where
lxi h,030h ;this
shld 8001h ;this
sta 8000h ;where
lxi h,000h ;this
shld 8001h ;this
;//////////////////////////////
mvi c,4
:c4
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
rrc ;add a; mvi a,02h ;where
sta 8000h ;where
lxi h,0008h ;this
shld 8001h ;this
dcr c
jnz c4
;////////////////////////////1 position
sta 8000h ;where
lxi h,0000h ;this
shld 8001h ;this
;add a ;where
sta 8000h ;where
lxi h,030h ;this
shld 8001h ;this
sta 8000h ;where
lxi h,000h ;this
shld 8001h ;this
;////////////////////////////
jmp start


