Арифметичні операції мікропроцесора Intel 8086 (80286)

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2007
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Архітектура комп'ютерів

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Кафедра САПР ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ № 8 На тему: «Арифметичні операції мікропроцесора Intel 8086 (80286)». З дисципліни : «Архітектура комп’ютерів» Тема роботи: Арифметичні операції мікропроцесора Intel 8086 (80286). Мета роботи: Вивчити основні арифметичні операції мікропроцесора Intel 8086 (80286). ТЕОРЕТИЧНІ ВІДОМОСТІ ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ЛАБОРАТОРНЕ ЗАВДАННЯ: Виконати арифметичні операції над числами:  Дані вводити з клавіатури. Результат вивести на екран в десятковій системі. Передбачити захист від неправильного введення значень. ХІД РОБОТИ: Для реалізації поставленого завдання була розроблена наступна програма: .model tiny .code ;початок коду програми org 100h start: mov ah,9 mov dx,offset mes1 ;виводимо перше повідомлення і int 21h ;очікуємо введення 1 числа CALL VVID ;виклик підпрограми введення і mov n1,ax ;перетворення числа з ASCII в ;двійкову систему числення mov ah,9 ;повторюємо для 2 числа mov dx,offset mes2 int 21h CALL VVID mov n2,ax mov ah,9 ;повторюємо для 3 числа mov dx,offset mes3 int 21h CALL VVID mov n3,ax mov ah,9 mov dx,offset mes4 ;виводимо повідомлення int 21h mov ax,n1 add ax,n2 ;Перше число додаємо до другого mov r1,ax call vuvid ;викликаємо підпрограму переведення ;результату в ASCII формат і ;виведення його на екран mov ah,9 mov dx,offset mes5 int 21h xor dx,dx mov ax,r1 div n3 ;результат ділимо на третє число mov r2,ax mov ost,dx call vuvid ;перетворюємо в ASCII формат і ;виводимо на екран результат ділення mov ah,9 mov dx,offset mes6 int 21h mov ax,ost call vuvid ;виводимо на екран остачу від ділення call readkey RET ;підпрограма введення числа і перетворення його в двійкову систему VVID: MOV AH,0Ah MOV DX,OFFSET LBUFER INT 21h mov cx,0 mov tmp,cx XOR CX,CX XOR DX,DX MOV Cl,mbufer mov bx,1 CUKL: mov di,cx XOR AX,AX MOV al,byte ptr bufer[di-1] cmp al,30h jb error cmp al,39h ja error sub al,30h MUL bx ADD tmp,ax MOV AX,bx MUL m MOV bx,AX loop cukl mov ax,tmp RET ERROR: mov ah,9 mov dx,offset emes int 21h JMP vvid ;підпрограма перетворення числа в ASCII формат і ;виведення його на екран VUVID: XOR CX,CX XOR DX,DX mov bx,ax mov cx,4 mov ax,1000 mov d,ax mov ax,bx CUKL2: div d push ax add ax,30h mov dl,al mov ah,02h int 21h pop ax mul d sub bx,ax mov ax,d div m mov d,ax mov ax,bx loop CUKL2 RET ;підпрограма очікування натиснення будь-якої клавіші READKEY: mov ah,9 mov dx,offset mes7 int 21h mov ah,8 int 21h ret ;дані які використовувались програмою ;повідомлення які видає програма mes1 db "Введiть 1 число:",0Dh,0ah,24h mes2 db 0Dh,0ah,"Введiть 2 число:",0Dh,0ah,24h mes3 db 0Dh,0ah,"Введiть 3 число:",0Dh,0ah,24h mes4 db 0Dh,0ah,0Dh,0ah,"Результат додавання:",0Dh,0ah,24h mes5 db 0Dh,0ah,"Результат дiлення:",0Dh,0ah,24h mes6 db 0Dh,0ah,"Остача вiд дiлення:",0Dh,0ah,24h mes7 db 0Dh,0ah,0Dh,0ah,"Натиснiть будь-яку клавiшу...",24h emes db "Помилка! Попробуйте щераз:",0Dh,0ah,24h ;буфер для даних lbufer db 5 mbufer db ? bufer db 5 DUP (0) M db 10 ;множник D dw 0 ;дільник tmp dw 0 ;змінна для тимчасового зберігання N1 dw ? ;перше число N2 dw ? ;друге число N3 dw ? ;третє число R1 dw ? ;результат додавання R2 dw ? ;результат ділення ost dw ? ;остача від ділення end start ВИСНОВОК: Під час виконання лабораторної роботи я вивчив основні арифметичні операції мікропроцесора Intel 8086 (80286). Мною була написана програма, яка виконує додавання двох чисел і ділить результат на третє число. Числа вводимо з клавіатури, а результат виводиться на екран в десятковій системі. Крім цього в програмі передбачено захист від неправильного введення значень.
Антиботан аватар за замовчуванням

28.01.2013 14:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!