Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

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

Название: Асемблер Контрольна - варіант 1
Раздел: Рефераты по астрономии
Тип: реферат Добавлен 21:17:04 15 июня 2004 Похожие работы
Просмотров: 11 Комментариев: 18 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Задача № 1 . Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення функції:

М3 = (С - М1) + (Е – (50)16) + (D + М2)

, де A, B, C, D, E, H, L– регістри загального призначення мікропроцесора КР580ВМ80А; М1, М2 – операнди, розташовані в пам’яті; М3 – результат обчислень, розташований у пам’яті.

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

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

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

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

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

MOVA, C ; Запис вмісту регістра С в акумулятор

LXIH, 8020Н ; Запис в пару регістрів HL адреси операнда М1

SUBM ; Віднімання від акумулятора значення операнда М1

MOVB, A; Перенесення результату з акумулятора в регістр В

MOVA, E; Запис вмісту регістра Е в акумулятор

SUI 50Н ; Віднімання від акумулятора значення 50 в 16-му коді

ADDB; Додавання до вмісту акумулятора значення регістра В

MOVB, A ; Перенесення результату з акумулятора в регістр В

MOVA, D ; Запис вмісту регістра D в акумулятор

LXIH, 8021Н ; Запис в пару регістрів HL адреси операнда М2

ADDM; Додавання до вмісту акумулятора значення М2

ADDB; Додавання до вмісту акумулятора значення регістра В

STA8022Н ; Запис результату обчислень функції в М3

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

Блок-схема до даної програми зображена на рис.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: DCXD ; Зменшення пари регістрів DЕ на 1

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

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

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

RЕТ ; Вихід

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

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

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

Задача № 3 . Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення виразу:

Y=( Amax/ 2 + 5 * Amin / 16 ) / 4

за допомогою мікропроцесора КР580ВМ80А, де Amax, Amin – максимальнеі мінімальне значення для масиву однобайтних чисел без знаку об’ємом N=64 байт, який зберігається в пам’яті з початковою адресою Addr0.

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

Розподіл регістрів загального призначення:

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

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

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

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

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

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

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

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

Визначимо найбільше і найменше значення виразу Y:

Ymax = ( FF / 2 + 5 * FF / 16 ) / 4 = 2E

Ymin = ( 0 / 2 + 5 * 0 / 16 ) / 4 = 0

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

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

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

; масиву Addr016

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

LDAAddr016 ; Запис в акумулятор першого елементу масиву

MS: INXH ; Визначення адреси наступного елементу масиву

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

; масиву

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

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

; масиву

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

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

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

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

MS1: ORAA; Логічне додавання вмісту акумулятора для

; обнулення TC

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

STAAddr(Amax)16; Запис в комірку Addr(Amax)16 значення Amax/2

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

; масиву Addr016

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

LDAAddr016 ; Запис в акумулятор першого елементу масиву

MS2: INXH ;Визначення адреси наступного елементу масиву

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

; масиву

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

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

; масиву

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

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

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

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

MS3: STAAddr(Amin)16; Запис в комірку Addr(Amin)16 значення Amin

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

; А =Amin +Amin = 2Amin

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

; А = 2Amin + 2Amin = 4Amin

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

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

;А = 4Amin + Amin = 5Amin

MVIB, 04 ; Ділення вмісту акумулятора на 16

MS4: ORAA ;

RAR ;

DCRB ;

JNZMS4 ;

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

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

MVIB, 02 ;Ділення вмісту акумулятора на 4

MS5:ORAA ;

RAR ;

DCRB ;

JNZMS5 ;

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

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

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

Задача № 4 . Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення виразу:

Y= ( 3 * Aсер-Amin / 2 ) * ( Amax/ 4 )

за допомогою мікропроцесора КР580ВМ80А, де Amax, Amin, Aсер – максимальне, мінімальне і середне значення для масиву однобайтних чисел без знаку об’ємом N=64 байт, який зберігається в пам’яті з початковою адресою Addr0.

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

Розподіл регістрів загального призначення:

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

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

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

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

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

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

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

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

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

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

4. 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 сер : LXIH, Addr016 ; Запис в пару регістрів HLадреси першого елементу

; масиву Addr016

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

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

MOVD, A ;Очищення лічильника числа переповнення

MS: ADDM ; Додавання до вмісту акумулятора Аі

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

INRD ; Збільшення лічильника переносу на 1

MS1: INXH ; Визначення адреси наступного елементу масиву

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

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

MOVE, A ; Молодший байт суми

MS2: MVIC, 06 ; Ділення суми на 64

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

; обнулення TC

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

RAR ;

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

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

RAR ;

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

DCRС ;

JNZMS2 ;

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

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

MOVE, A ; Пересилання результату в Е

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

; масиву Addr016

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

LDAAddr016 ; Запис в акумулятор першого елементу масиву

MS3: INXH ; Визначення адреси наступного елементу масиву

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

; масиву

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

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

; масиву

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

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

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

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

MS4: ORAA ;Логічне додавання вмісту акумулятора для

; обнулення TC

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

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

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

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

MOVD, A ; Пересилання результату в D

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

; масиву Addr016

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

LDAAddr016 ; Запис в акумулятор першого елементу масиву

MS5: INXH ; Визначення адреси наступного елементу масиву

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

; масиву

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

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

; масиву

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

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

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

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

MS6: MVIB, 02 ;Ділення вмісту акумулятора на 4

ORAA ;

MS7: RAR ;

DCRB ;

JNZMS7 ;

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

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

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

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

; обнулення TC

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

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

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

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

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

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

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

JMPMS10 ; Перехід до зсуву суми часткових добутків

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

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

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

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

; в регістр В

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

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

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

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

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

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

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

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

;акумулятор

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

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

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

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

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

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

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

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

Задача № 5 . Розробіть драйвер для виведення інформації на зовнішній пристрій у мікропроцесорній системі на базі мікропроцесорної серії К580.

Наведіть структурну схему організації виведення інформації, алгоритм виведення, програму драйвера на мові Асемблера.

Виконати завдання за допомогою паралельного інтерфейсу К580ВВ55, який програмується, з розрядністю даних рівній 11.

Алгоритм програми:

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

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

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

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

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

PUSH D ;

PUSH H ;

PUSH PSW ;

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

OUT RU ;

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

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

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

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

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

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

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

OUT PORT C ;

MVI A, 00000000 ;

OUT PORT C ;

M1: INPORTC ; Перевірка готовності

RAL ;

JNC M1 ;

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

POP H ;

POP D ;

POP B ;

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

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

Структура програми зображена на рис.6 в додатку 3.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита00:31:24 05 ноября 2021
.
.00:31:23 05 ноября 2021
.
.00:31:21 05 ноября 2021
.
.00:31:19 05 ноября 2021
.
.00:31:17 05 ноября 2021

Смотреть все комментарии (18)
Работы, похожие на Реферат: Асемблер Контрольна - варіант 1

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(288037)
Комментарии (4159)
Copyright © 2005-2021 HEKIMA.RU [email protected] реклама на сайте