Узнать стоимость написания работы
Оставьте заявку, и в течение 5 минут на почту вам станут поступать предложения!
Реферат

Реферат по предмету "Астрономия"


Асемблер Контрольна - варіант 1

Задача № 1 . Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення функції: М3 = (С - М1) + (Е – (50)16) + (D + М2) , де A, B, C, D, E, H, L – регістри загального призначення мікропроцесора КР580ВМ80А; М1, М2 – операнди, розташовані в пам’яті; М3 – результат обчислень, розташований у пам’яті.

Регістр В – тимчасове збереження поточного результату.

Розподіл комірок пам’яті:

8000Н-8014Н – машинні коди програми;

8020Н, 8021Н – адреси операндів М1 та М2;

8022Н – адреса результату М3.


MOV A, C ; Запис вмісту регістра С в акумулятор LXI H, 8020Н ; Запис в пару регістрів HL адреси операнда М1 SUB M ; Віднімання від акумулятора значення операнда М1 MOV B, A ; Перенесення результату з акумулятора в регістр В MOV A, E ; Запис вмісту регістра Е в акумулятор SUI 50Н ; Віднімання від акумулятора значення 50 в 16-му коді ADD B ; Додавання до вмісту акумулятора значення регістра В MOV B, A ; Перенесення результату з акумулятора в регістр В MOV A, D ; Запис вмісту регістра D в акумулятор LXI H, 8021Н ; Запис в пару регістрів HL адреси операнда М2 ADD M ; Додавання до вмісту акумулятора значення М2 ADD B ; Додавання до вмісту акумулятора значення регістра В STA 8022Н ; Запис результату обчислень функції в М3 RST 1 ; Припинити виконання програми


Блок-схема до даної програми зображена на рис.1 в додатку 1.


Задача № 2 . Розробіть алгоритм і напишіть програму на мові Асемблера для формування часової затримки за допомогою мікропроцесора КР580ВМ80А. Наведіть розрахунок часу затримки і величини похибки.

Час затримки 100мс, максимальна похибка 0,7%, А – кількість циклів.

Для розрахунку часової затримки наведем програму з тактами затримки кожної команди. Пара регістрів DЕ – лічильник кількості циклів. 8000Н-800СН – машинні коди програми;


MS: DCX D ; 5

MOV A, E ; 5

ORA D ; 7

JNZ MS ; 10

RЕТ ; 10

LXI D, **** ; 10

CALL MS ; 17


Розрахуємо кількість циклів при часі затримки 100 мс=100000 мкс: 100000 = 0,5 * ( А * ( 5 + 5 + 7 + 10 ) + 10 + 10 + 17 ) А = 740610 = 1СЕЕ16 Мінімальний час затримки (А=1): Тmin = 32 мкс Максимальний час затримки (А=0): Тmax = 884741 мкс Даний за умовою час затримки входить в межі часової затримки наведеної вище програми. Перевіримо час затримки для вирахуваної кількості циклів: Т = 0,5 * ( 7406 * 27 + 37 ) = 99999,5 мкс Знайдемо похибку обчислень: b=(100000–99999,5)*100%/100000=0,05% Отримана похибка меньша, ніж максимально допустима. Після проведення обчислень виконаємо програму:


MS: DCX D ; Зменшення пари регістрів DЕ на 1

MOV A, E ; Пересилання в акумулятор вмісту регістра Е

ORA D ; Логічне додавання регістру D до акумулятора

JNZ MS ; Організація циклу

RЕТ ; Вихід

LXI D, 1СЕЕН ; Запис в пару регістрів DЕ числа 1СЕЕН

CALL MS ; Виклик підпрограми


Блок-схема до даної програми зображена на рис.2 в додатку 1.


Задача № 3 . Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення виразу: Y = ( Amax / 2 + 5 * Amin / 16 ) / 4 за допомогою мікропроцесора КР580ВМ80А, де Amax, Amin – максимальне і мінімальне значення для масиву однобайтних чисел без знаку об’ємом N=64 байт, який зберігається в пам’яті з початковою адресою Addr0.

Результат обчислень потрібно записати в пам’ять за адресою Addr(Rez). Визначіть найбільше і найменше значення виразу Y. Розподіл регістрів загального призначення:

Пара регістрів HL – адреса Addr елемента масиву;

Регістр В – лічильник елементів масиву і, кількість циклів при діленні.

Розподіл комірок пам’яті:

8000Н-804FН – машинні коди програми;

8050Н-808FН– масив чисел;

8090Н – адреса Addr (Amax)16;

8091Н – адреса Addr (Amin)16;

8092Н – адреса результату Addr(Rez)16.

Визначимо найбільше і найменше значення виразу Y: Ymax = ( FF / 2 + 5 * FF / 16 ) / 4 = 2E Ymin = ( 0 / 2 + 5 * 0 / 16 ) / 4 = 0

Обрахувавши Ymax та Ymin бачимо, що результат не виходить за межі одного байту, тому його можна записати в одну комірку.

Розробимо програму для розрахунку цієї функції:


Amax: LXI H, Addr016 ; Запис в пару регістрів HL адреси першого елементу

; масиву Addr016

MVI B, 64 ; Завантаження в регістр В кількості елементів масиву

LDA Addr016 ; Запис в акумулятор першого елементу масиву MS: INX H ; Визначення адреси наступного елементу масиву

CMP M ; Порівняння вмісту акумулятора з і-м елементом

; масиву

DCR B ; Зменшення кількості елементів на 1

JZ MS1 ; Вихід з циклу при проходженні всіх елементів

; масиву

JNC MS ; Повернення на початок циклу, якщо Аi < Amax

MOV A, M ; Запис в акумулятор поточного максимального

; значення масиву

JC MS ; Повернення на початок циклу, якщо Аi >Amax MS1: ORA A ; Логічне додавання вмісту акумулятора для

; обнулення TC

RAR ; Ділення вмісту акумулятора на 2

STA Addr(Amax)16; Запис в комірку Addr(Amax)16 значення Amax/2 Amin: LXI H, Addr016 ; Запис в пару регістрів HL адреси першого елементу

; масиву Addr016

MVI B, 64 ; Завантаження в регістр В кількості елементів масиву

LDA Addr016 ; Запис в акумулятор першого елементу масиву MS2: INX H ; Визначення адреси наступного елементу масиву

CMP M ; Порівняння вмісту акумулятора з і-м елементом

; масиву

DCR B ; Зменшення кількості елементів на 1

JZ MS3 ; Вихід з циклу при проходженні всіх елементів

; масиву

JC MS2 ; Повернення на початок циклу, якщо Аi > Amin

MOV A, M ; Запис в акумулятор поточного мінімального

; значення масиву

JNC MS2 ; Повернення на початок циклу, якщо Аi < Amin MS3: STA Addr(Amin)16; Запис в комірку Addr(Amin)16 значення Amin

ADD A ; Збільшення вмісту акумулятора в два рази

; А = Amin + Amin = 2Amin

ADD A ; Збільшення вмісту акумулятора в два рази

; А = 2Amin + 2Amin = 4Amin

LXI H, Addr(Amin)16; Запис в пару регістрів HL адреси Addr(Amin)16

ADD M ; Додавання до вмісту акумулятора Amin

;А = 4Amin + Amin = 5Amin

MVI B, 04 ; Ділення вмісту акумулятора на 16 MS4: ORA A ;

RAR ;

DCR B ;

JNZ MS4 ;

LXI H, Addr(Amax)16; Запис в пару регістрів HL адреси Addr(Amax)16

ADD M ; Додавання до вмісту акумулятора Amax/2

MVI B, 02 ; Ділення вмісту акумулятора на 4 MS5: ORA A ;

RAR ;

DCR B ;

JNZ MS5 ;

STA Addr(Rez)16 ; Запис в комірку Addr(Rez)16 значення Y

RST 1 ; Припинити виконання програми


Блок-схема до даної програми зображена на рис.3 в додатку 2.


Задача № 4. Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення виразу: Y = ( 3 * Aсер - Amin / 2 ) * ( Amax / 4 ) за допомогою мікропроцесора КР580ВМ80А, де Amax, Amin, Aсер – максимальне, мінімальне і середне значення для масиву однобайтних чисел без знаку об’ємом N=64 байт, який зберігається в пам’яті з початковою адресою Addr0.

Результат обчислень потрібно записати в пам’ять за адресою Addr(Rez). Визначіть найбільше і найменше значення виразу Y. Розподіл регістрів загального призначення:

Пара регістрів HL – адреса Addr елемента масиву;

Регістр В – лічильник елементів масиву і, кількість циклів при діленні;

Регістр Е – тимчасове збереження результату та множника;

Регістр D – тимчасове збереження результату та множеного;

Регістр С – збереження суми часткових добутків;

Регістр L – лічильник біт.

Розподіл комірок пам’яті:

8000Н-807EН – машинні коди програми;

8080Н-811FН– масив чисел;

8120Н – адреса молодшого байту результату Addr(Rez1)16;

8121Н – адреса старшого байту результату Addr(Rez2)16.

Визначимо найбільше і найменше значення виразу Y: Ymax = ( 3 * FF – FF / 2 ) * ( FF / 4 ) = 9D02 Ymin = ( 3 * 0 – 0 / 2 ) * ( 0 / 4 ) = 0

Отримали, що результат входить в межі двох байт, тому результат потрібно записувати в двох комірках Addr(Rez1)16-молодший байт та Addr(Rez2)16-старший байт.

Розробимо програму для розрахунку цієї функції:


Aсер: LXI H, Addr016 ; Запис в пару регістрів HL адреси першого елементу

; масиву Addr016

MVI B, 64 ; Завантаження в регістр В кількості елементів масиву

XRA A ; Обнулення акумулятора

MOV D, A ; Очищення лічильника числа переповнення MS: ADD M ; Додавання до вмісту акумулятора Аі

JNC MS1 ; Якщо немає переносу, то перехід на MS1

INR D ; Збільшення лічильника переносу на 1 MS1: INX H ; Визначення адреси наступного елементу масиву

DCR B ; Зменшення кількості елементів на 1

JNZ MS ; Організація циклу

MOV E, A ; Молодший байт суми MS2: MVI C, 06 ; Ділення суми на 64

ORA A ; Логічне додавання вмісту акумулятора для

; обнулення TC

MOV A, D ; Пересилання старшого байту суми в А

RAR ;

MOV D, A ; Пересилання старшого байту суми в D

MOV A, Е ; Пересилання молодшого байту суми в А

RAR ;

MOV E, A ; Пересилання молодшого байту суми в E

DCR С ;

JNZ MS2 ;

ADD A ; Збільшення вмісту акумулятора А=Aсер+Aсер=2Aсер

ADD E ; Додавання до акумулятора вмісту Е А=3Aсер

MOV E, A ; Пересилання результату в Е Amin: LXI H, Addr016 ; Запис в пару регістрів HL адреси першого елементу

; масиву Addr016

MVI B, 64 ; Завантаження в регістр В кількості елементів масиву

LDA Addr016 ; Запис в акумулятор першого елементу масиву MS3: INX H ; Визначення адреси наступного елементу масиву

CMP M ; Порівняння вмісту акумулятора з і-м елементом

; масиву

DCR B ; Зменшення кількості елементів на 1

JZ MS4 ; Вихід з циклу при проходженні всіх елементів

; масиву

JC MS3 ; Повернення на початок циклу, якщо Аi > Amin

MOV A, M ; Запис в акумулятор поточного мінімального

; значення масиву

JNC MS3 ; Повернення на початок циклу, якщо Аi < Amin MS4: ORA A ; Логічне додавання вмісту акумулятора для

; обнулення TC

RAR ; Ділення вмісту акумулятора на 2

MOV B, A ; Пересилання в В Amin/2

MOV A, E ; Запис в акумулятор 3Aсер

SUB B ; Віднімання вмісту В від А: А=3Aсер-Amin/2

MOV D, A ; Пересилання результату в D Amax: LXI H, Addr016 ; Запис в пару регістрів HL адреси першого елементу

; масиву Addr016

MVI B, 64 ; Завантаження в регістр В кількості елементів масиву

LDA Addr016 ; Запис в акумулятор першого елементу масиву MS5: INX H ; Визначення адреси наступного елементу масиву

CMP M ; Порівняння вмісту акумулятора з і-м елементом

; масиву

DCR B ; Зменшення кількості елементів на 1

JZ MS6 ; Вихід з циклу при проходженні всіх елементів

; масиву

JNC MS5 ; Повернення на початок циклу, якщо Аi < Amax

MOV A, M ; Запис в акумулятор поточного максимального

; значення масиву

JC MS5 ; Повернення на початок циклу, якщо Аi >Amax MS6: MVI B, 02 ; Ділення вмісту акумулятора на 4

ORA A ; MS7: RAR ;

DCR B ;

JNZ MS7 ;

MOV E, A ; Запис результату в Е Amax/4

LXI B, 0000 ; Очищення В і С

MVI L, 08 ; Завантаження лічильника біт (регістр L)

ORA A ; Логічне додавання вмісту акумулятора для

; обнулення TC MS8: MOV A, E ; Завантаження множника в акумулятор з Е

RAR ; Зсув аналізуємого біта множника

MOV E, A ; Повернення зсунутого множника в Е

JNC MS9 ; Перехід на мітку MS9, якщо біт множника = 0

MOV A,B ; пересилання старшого байта суми часткових добутків

; в акумулятор

ADD D ; Додавання множеного до суми часткових добутків

JMP MS10 ; Перехід до зсуву суми часткових добутків MS9: MOV A, B ; Пересилання старшого байта суми часткових добутків

; в акумулятор MS10:RAR ; Зсув суми часткових добутків

MOV B, A ; Пересилання старшого байта суми часткових добутків

; в регістр В

MOV A, C ; Пересилання молодшого байта суми часткових

; добутків в акумулятор

RAR ; Зсув суми часткових добутків

MOV C, A ; Пересилання молодшого байта суми часткових

; добутків в регістр С

DCR L ; Зменшення лічильника на 1

JNZ MS8 ; Організація циклу

MOV A, С ; Пересилання молодшого байта результату в

;акумулятор

STA Addr(Rez1)16; Пересилання молодшого байта результату

; в комірку Addr(Rez1) 16

MOV A, В ; Пересилання старшого байта результату

; в акумулятор

STA Addr(Rez2) 16; Пересилання старшого байта результату

; в комірку Addr(Rez2) 16

RST 1 ; Припинити виконання програми


Блок-схема до даної програми зображена на рис.4 в додатку 2.


Задача № 5. Розробіть драйвер для виведення інформації на зовнішній пристрій у мікропроцесорній системі на базі мікропроцесорної серії К580. Наведіть структурну схему організації виведення інформації, алгоритм виведення, програму драйвера на мові Асемблера. Виконати завдання за допомогою паралельного інтерфейсу К580ВВ55, який програмується, з розрядністю даних рівній 11. Алгоритм програми:

Видати сигнал пуску;

Чекання сигналу готовності;

Зчитування інформації з портів А та В.

8000Н-8024Н – машинні коди програми.


PUSH B ; Збереження стану пар регістрів

PUSH D ;

PUSH H ;

PUSH PSW ;

MVI A, 81H ; Настройка периферійного пристрою

OUT RU ;

LXI H, 8100H ; Запис в пару HL адреси регістра А

MOV A, M ; Пересилання даних в акумулятор

OUT PORT A ; Пересилання даних на регістр порта А

INX H ; Визначення адреси регістра В

MOV A, M ; Пересилання даних в акумулятор

OUT PORT B ; Пересилання даних на регістр порта В

MVI A, 00000001 ; Запуск стробуючого сигналу

OUT PORT C ;

MVI A, 00000000 ;

OUT PORT C ; M1: IN PORT C ; Перевірка готовності

RAL ;

JNC M1 ;

POP PSW ; Відновлення стану пар регістрів

POP H ;

POP D ;

POP B ;

RST 1 ; Припинення виконання програми


Блок-схема до даної програми зображена на рис.5 в додатку 3. Структура програми зображена на рис.6 в додатку 3.



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат 605 лет со дня рождения Мазаччо (1401 ок. 1428), итальянского живописца
Реферат Традиционное кейнсианство и кейнсианско-неоклассический синтез
Реферат Шпаргалка по Лесной таксации
Реферат Система для визначення складу вихлопних газів автомобілів
Реферат Порядок пересмотра Конституции РФ и принятия конституционных поправок
Реферат Основные принципы построения успешного межличностного общения
Реферат Речь. Виды речи
Реферат Chinese Emigrants Essay Research Paper Running Head
Реферат Опис рослини Тису ягідного
Реферат Реформирование либеральной экономики в концепциях противников классической школы 2
Реферат Theory Of Growth Samuelson
Реферат Возможности завтрашнего маркетинга
Реферат Аналіз регуляторного впливу регуляторного акту
Реферат Погашення та зняття судимості Дії спрямовані на насильницьку зміну чи повалення конституційно
Реферат Бессмертный батальон капитана милиции К.Г. Владимирова