
лабораторная работа / лабораторные работы по ASSAMBLER / Отчет спо лаба 1
.docxЦель работы: изучение операций сложения, вычитания, умножения и деления двоичных чисел на языке Ассемблер.
ЗАДАНИЕ ДЛЯ ЛАБОРАТОРНОЙ РАБОТЫ
-
Написать программу на языке Ассемблер, реализующей заданное выражение из таблицы. Номер варианта соответствует номеру по списку.
-
Проассемблировать программу.
-
Отладить и проследить пошаговое выполнение программы с помощью отладчика DEBUG либо TURBO DEBUGER. Результат представить в виде таблицы:
Задание для выполнения лабораторной работы:
№ варианта 8 Y = (a*c*4 - d) / (c*8)=14 (48 в остатке)
|
Ax |
Bx |
Cx |
Dx |
Mov |
8 |
|
|
|
Mov |
8 |
8 |
|
|
Mul |
16 |
|
|
|
Mov |
|
|
16 |
|
Mov |
30 |
|
16 |
|
Mov |
30 |
8 |
16 |
|
Mul |
240 |
|
16 |
|
Mov |
240 |
4 |
16 |
|
Mul |
960 |
|
16 |
|
Mov |
960 |
16 |
16 |
|
Sub |
944 |
|
16 |
|
Div |
14 |
|
|
48 |
mov ax,8
mov bx,8
mul bx
mov cx,ax
mov ax,30
mov bx,8
mul bx
mov bx,4
mul bx
mov bx,16
SUB ax,bx
div cx
№ варианта 8 Y = (a*c*4 - d) / (c*(-8))=-14(48 в остатке)
A=30 C=8 D=16
|
Ax |
Bx |
Cx |
Dx |
Mov |
8 |
|
|
|
Mov |
8 |
-8 |
|
|
imul |
-16 |
|
|
|
neg |
16 |
|
|
|
Mov |
|
|
16 |
|
Mov |
30 |
|
16 |
|
Mov |
30 |
8 |
16 |
|
Mul |
240 |
|
16 |
|
Mov |
240 |
4 |
16 |
|
Mul |
960 |
|
16 |
|
Mov |
960 |
16 |
16 |
|
Sub |
944 |
|
16 |
|
Div |
14 |
|
|
48 |
mov bx,-8
imul bx
neg ax
mov cx,ax
mov ax,30
mov bx,8
mul bx
mov bx,4
mul bx
mov bx,16
SUB ax,bx
div cx
Вывод: мы научились производить операции сложения, вычитания, умножения и деления двоичных чисел на языке Ассемблер.