Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
оэвм схемы и информация.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Переслать X байт по адресу y в адрес z

K580:

LXI H,Y ;H:L<-Y

LXI D,Z ;D:E<-Z

MVI C,X ;C<-X

NEXT:

MOV A,M ;A<-M[H:L]

STAX D ;M[D:E]<-A

INX H ;H:L=H:L+1

INX D ;D:E=D:E+1

DCR C ;C=C-1

MOV A,C ;A<-C

CMI 0 ;A?0

JNZ NEXT

K1810:

LDS SI,Y ;DS:SI<-Y

LES DI,Z ;ES:DI<-Z

MOV CX,X ;CX<-X (X-счетчик байт или слов)

REP MOVSB(W) ; ES:[DI]<-DS:[SI], SI+=1(+=2) , DI+=1(+=2)

Переслать X байт по адресу/в порт y из/в порт/память z

СПВВ:

MOVI CC, 000 01 00 0 0 s 00 0 ff b

; ff – 00-из порта в порт, 01-из памяти в порт, 10-из порта в память, 11-из памяти в память

; s – 0 источник GA(Y), 1 – источник GB(Z)

MOVI BC, X ;загрузить счетчик

MOVI GA,Y

MOVI GB,Z

XFER ;ПДП пересылка

NOP

HLT

Организовать пдп пересылку X байт

(aaaa – адрес ВУ ПДП, например 1000), nn – номер канала (00-0,01-1,10-2,11-3)

Память Y/порт:

К1810/K580(MOV=MVI, OUT a,r = OUT a):

MOV AL, 0000000b ;команда управления CR

OUT aaaa1000b,AL ;запись в регистр команд управления (CR)

MOV AL, 100ffnnb ;установка режима MR, ff – 01 запись в ОЗУ из порта, 10 – чтение из ОЗУ в порт

OUT aaaa1011b, AL ;запись в регистр режима

MOV AL, LO(Y)

OUT aaaa0nn0b,AL ;запись в BAR/CAR младшего значения Y

MOV AL,HI(Y)

OUT aaaa0nn0b,AL ;запись в BAR/CAR старшего значения Y

MOV AL, LO(X)

OUT aaaa0nn0b,AL ;запись в WCR/CWR младшего значения X

MOV AL,HI(X)

OUT aaaa0nn0b,AL ;запись в WCR/CWR старшего значения X

MOV AL,000001nnb ;установить запрос

OUT aaaa1001b ;запись в регистр запросов

Память Y=>Память Z:

К1810/K580(MOV=MVI, OUT a,r = OUT a):

MOV AL, 0100001b ;команда управления CR

;--- nn = 00 в первом случаи, n = 01 во втором, блок повторяется два раза ---

OUT aaaa1000b,AL ;запись в регистр команд управления (CR)

MOV AL, 100ffnnb ;установка режима MR, ff – 01 запись в ОЗУ из порта (при n=01), 10 – чтение из ОЗУ в порт (при n=00)

OUT aaaa1011b, AL ;запись в регистр режима

MOV AL, LO(Y или Z)

OUT aaaa0nn0b,AL ;запись в BAR/CAR младшего значения Y (n=00), Z(n=01)

MOV AL,HI(Y или Z)

OUT aaaa0nn0b,AL ;запись в BAR/CAR старшего значения Y или Z

MOV AL, LO(X)

OUT aaaa0nn0b,AL ;запись в WCR/CWR младшего значения X

MOV AL,HI(X)

OUT aaaa0nn0b,AL ;запись в WCR/CWR старшего значения X

;---- конец блока ---

MOV AL,000001nnb ;установить запрос, где n=00

OUT aaaa1001b ;запись в регистр запросов

Таймер

aaaaaa – адрес ВУ PIT, например 100000

nn – номер канала (00-0,01-1,10-2)

mmm – режим (000-0,001-1,Х10-2,Х11-3,100-4,101-5)

f – двух байтовая константа счета = CLK ГТИ /CLK требуемое (режим 2)

K580:

MVI AL, nn11mmm0b ;управляющее слово

OUT aaaaaa11b ;установка управляющего слова

MVI AL,LO(f) ;младшая часть счетчика

OUT aaaaaannb ;запись младшей части

MVI AL,HI(f) ;старшая часть счетчика

OUT aaaaaannb ;запись старшей части

K1810:

MOV AL, nn11mmm0b ;управляющее слово

OUT aaaaaa11b,AL ;установка управляющего слова

MOV AL,LO(f) ;младшая часть счетчика

OUT aaaaaannb,AL ;запись младшей части

MOV AL,HI(f) ;старшая часть счетчика

OUT aaaaaannb,AL ;запись старшей части