МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
ЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
/
Лабораторна робота №4
з курсу
”Засоби системного програмування”
Програмування задач лінійної структури. Обчислення виразів.
Львів – 2012
Програмування задач лінійної структури. Обчислення виразів.
Мета: вивчити способи задання констант та змінних в Асемблері та набути навиків використання арифметичних команд
над даними різного розміру.
Завдання:
12.
X=K+B4/C2-D2*F2-E1
7055E0AC
Лістинг програми
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
K_low EQU 0E0ACh
K_hight EQU 7055h
B dd 12B112A2h
C dw 5656h
D dw 2012h
E db 10h
F dw 1112h
Temp1 dw 00h,00h ;D*F
Temp2 dw 00h,00h ;B/C
Temp3 dw 00h,00h ;D*F-E
X dw 00h,00h ;result
.CODE
start:
mov ax,@data
mov ds,ax
mov ax,D
mul F
mov [Temp1+0], ax;
mov [Temp1+2], dx;
mov ax,0
mov ax,word ptr[Temp1]
mov bh,00
mov bl,E
sub ax,bx
sbb word ptr[Temp1+2],0
mov word ptr[Temp3+0],ax
mov word ptr[Temp3+2],dx
mov ax,0
mov ax,word ptr[B]
mov dx,word ptr[B+2]
div C
mov dx,K_hight
add ax,K_low
mov [Temp2+0],ax
adc dx,0
mov [Temp2+2],dx
mov ax,word ptr[Temp2+0]
mov dx,word ptr[Temp3+0]
sub ax,dx
mov [X],ax
mov ax,word ptr[Temp2+2]
mov dx,word ptr[Temp3+2]
sbb ax,dx
mov [X+2],ax
sbb [X+4],0
mov ah,4Ch ;DOS terminate program function
int 21h ;end of the program
end start
end
Дамп пам’яті відображено на рис.1,
/
Рис.1. Вмістиме дампу пам’яті
Висновок:
В даній лабораторній роботі я засвоїв та навчився задавати константи та змінні в Асемблері, та навчився використовувати арифметичні операції над даними різного розміру.