МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Лабораторна робота №8
“АРИФМЕТИЧНІ ОПЕРАЦІЇ МІКРОПРОЦЕСОРА Intel 8086(80286)”
Львів – 2007
Тема
Арифметичні операції МП Intel 8086(80286).
Мета
Вивчити основні арифметичні операції мікропроцесора Intel 8086(80286).
Завдання
Виконати завдання з 7-ої лабораторної роботи. Дані вводити з клавіатури в форматі. Результат вивести на екран в 10-вій системі числення. Передбачити захист від неправильного вводу значень.
Теоретичні відомості
__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Варіант індивідуального завдання
Виконати арифметичні дії над багаторозрядними числами, задані виразом:
(1191 – 898) + (324 – 298 +815)/2.
Текст програми
.model small
.stack 100h
.data
zonavvodu db 10,0,10 dup(' ')
perepov_msg db 0dh,0ah,"<integer perepov>$"
bufferEnd db 5 dup(' ')
povid1 db 0ah,0dh,"vvedit chislo1-->$"
povid2 db 0ah,0dh,"vvedit chislo2-->$"
povid3 db 0ah,0dh,"vvedit chislo3-->$"
povid4 db 0ah,0dh,"vvedit chislo4-->$"
error_msg db 0ah,0dh,"pomilka vvodu bazaniy perezapusk prohrami $"
povid5 db 0ah,0dh,"Rezultat-->$"
flag db 0
mas dw ?
.code
.startup
mov ax,@data
mov ds,ax
mov bx,offset mas
xor si,si
mov cx,3
mov dx,offset povid1
mov ah,9
int 21h
call zchituvannya
cmp flag,0
je end1
end1:
mov bx[si],ax
add si,2
mov dx,offset povid2
mov ah,9
int 21h
call zchituvannya
mov bx[si],ax
add si,2
mov dx,offset povid3
mov ah,9
int 21h
call zchituvannya
mov bx[si],ax
add si,2
mov dx,offset povid4
mov ah,9
int 21h
call zchituvannya
mov bx[si],ax
mov ax,bx[0]
sub ax,bx[2]
push ax
mov ax,bx[4]
mov dx,0
mov cx,bx[6]
div cx
push ax
pop cx
pop ax
sub ax,cx
push ax
mov dx,offset povid5
mov ah,9
int 21h
pop ax
call vivid
mov ah,07h
int 21h
.exit 0
zchituvannya proc
push bx
push cx
push dx
push si
mov dx,offset zonavvodu
mov ah,0ah
int 21h
mov si,offset zonavvodu+2
a1:
mov al,[si]
cmp al,' '
jnz a4
inc si
loop a1
jcxz a8
a4:
mov ax,0
mov bx,10
a5:
mov dl,[si]
cmp dl,'0'
jl aerror
cmp dl,'9'
jg aerror
and dx,000fh
push dx
mul bx
pop dx
jo a6
add ax,dx
jo a6
inc si
jmp a5
a6:
cmp ax,0ffffh
jne a7
jmp a8
a7:
mov dx,offset perepov_msg
mov ah,9
int 21h
mov ax,0
stc
jmp a8
aerror:
cmp dl,13
je a8
push ax
mov dx,offset error_msg
mov ah,9
int 21h
stc
pop ax
a8:
pop si
pop dx
pop cx
pop bx
ret
zchituvannya endp
vivid proc
push ax
push cx
push dx
push di
mov bx,10
mov cx,0
mov di,offset bufferEnd
l1:
mov dx,0
div bx
dec di
mov [di],dl
inc cx
or ax,ax
jnz l1
mov ah,2
mov dl,0dh
int 21h
mov ah,2
mov dl,0ah
int 21h
l2:
mov ah,2
mov dl,[di]
add dl,48
int 21h
inc di
loop l2
pop di
pop dx
pop cx
pop ax
ret
vivid endp
END
Висновок
Отже на цій лобораторній роботі я вивчив основні арифметичні операції мікропроцесора Intel 8086(80286).