
лабораторная работа / лабораторные работы по ASSAMBLER / ЛАБА_1
.docЦЕЛЬ РАБОТЫ: изучение операций сложения, вычитания, умножения и деления двоичных чисел на языке Ассемблер.
ЗАДАНИЕ
-
Написать программу на языке Ассемблер, реализующую заданное выражение.
-
Проассемблировать программу.
ИСХОДНЫЕ ДАННЫЕ
Y = ((a+c - d)*6) / b*8, где а=5; b=4; с=83; d=9.
1. Напишем программу на языке Ассемблер, реализующую заданное выражение.
model small
.data
a dw 5
b dw 4
c dw 83
d dw 9
.stack 256
.code
Start:
mov ax,@data
mov ds,ax
mov ax,a
mov bx,c
add ax,bx
mov bx,d
sub ax,bx
mov cx,6
mul cx
mov bx,ax
mov ax,b
mov cx,8
mul cx
xchg ax,bx
div bx
exit:
mov ax,4c00h
int 21h
end start
2. Файл-листинг
1 0000 model small
2 0000 .data
3 0000 0005 a dw 5
4 0002 0004 b dw 4
5 0004 0053 c dw 83
6 0006 0009 d dw 9
7 0000 .stack 256
8 0008 .code
9 0000 Start:
10 0000 B8 0000s mov ax,@data
11 0003 8E D8 mov ds,ax
12 0005 A1 0000r mov ax,a
13 0008 8B 1E 0004r mov bx,c
14 000C 03 C3 add ax,bx
15 000E 8B 1E 0006r mov bx,d
16 0012 2B C3 sub ax,bx
17 0014 B9 0006 mov cx,6
18 0017 F7 E1 mul cx
19 0019 8B D8 mov bx,ax
20 001B A1 0002r mov ax,b
21 001E B9 0008 mov cx,8
22 0021 F7 E1 mul cx
23 0023 93 xchg ax,bx
24 0024 F7 F3 div bx
25 0026 exit:
26 0026 B8 4C00 mov ax,4c00h
27 0029 CD 21 int 21h
28 end start
Вывод: в результате проделанной работы освоили операций сложения, вычитания, умножения и деления двоичных чисел на языке Ассемблер.