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

Билет 10

10. Составить функциональную схему расширения адресного пространства процессора К580 до 1 Мбайта методом базовых регистров. Привести ее преимущества и недостатки. Привести фрагмент программы, обеспечивающей пересылку ZZ байт из расширенной памяти процессора в базовую. Указать используемые способы адресации.

Код (такой же как в 9, но YYYY – начальный адрес в расширенной памяти, PPPP – начальный адрес в базовой памяти, количество регистров можно взять любое):

MVI A, XX ; непосредственная

OUT P1 ; запись в регистр проекцию

LXI B, YYYY ; непосредственная

LXI D, PPPP ; непосредственная

MVI B, 0 ; непосредственная

NEXT:

INR B ; В++ регистровая

MOV H, B ; HL<-BC регистровая

MOV L, C ; регистровая

MOV M, A ; M[HL]->A косвенная регистровая

MOV H, D ; HL<-DE регистровая

MOV L, E ; регистровая

MOV A, M ; А->M[HL] косвенная регистровая

INX B ; ВС++ регистровая

INX D ; DE++ регистровая

MVI A, ZZ ; непосредственная

CMP B ; регистровая

JNZ NEXT

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

Недостатки: Используется больше аппаратных средств; могут совпадать проекции окон.

Сопроцессор

(Среднее арифметическое и из него же можно получить сумму массива)

.386

.model flat, c

.code

; Определение публичных и внешних имен

public Srednia

Srednia proc C, arrptr:DWORD, arrlen:DWORD

local tmp ; временная перем., нужна из-за кривизниы Ынтеля

mov esi, arrptr ; esi-> на массив

mov ecx, arrlen ; кол-во элементов

fldz ; грузим в FPU нулик

op: lodsd ; в EAX - очередной элемент массива

mov dword ptr tmp, eax ; сохраняем его в tmp

fadd dword ptr tmp ; и уже отсюда прибавляем

loop op ; ECX раз

fild arrlen ; грузим в FPU кол-во элементов

fdivp st(1), st(0) ; и сумму эл-тов делим на их кол-во

fstp dword ptr tmp ; сохраняем среднее в tmp

mov eax, dword ptr tmp ; и только из него в EAX

ret

Srednia endp

End