
лабораторная работа / лабораторные работы по ASSAMBLER / lab1 вариант 30
.doc
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
БАЛАКОВСКИЙ ИНСТИТУТ ТЕХНИКИ, ТЕХНОЛОГИИ И УПРАВЛЕНИЯ
факультет: инженерно-строительный
кафедра: управление и информатика в технических системах
Лабораторная работа №1
по дисциплине: СПО
Вариант №30
Выполнил ст. гр. УИТ-32
Тихонова Т.В.
Принял:
Стельмах И.В.
2006 г.
Цель работы: изучение операций сложения, вычитания, умножения и деления
двоичных чисел на языке Ассемблер.
Задание:
-
Написать программу на языке Ассемблер, реализующей заданное выражение из таблицы. Номер варианта соответствует номеру по списку.
-
Проассамблировать программу.
-
Отладить и проследить пошаговое выполнение программы с помощью отладчика DEBUG либо TURBO DEBUGER.
Задание:
30 |
Y = ((a+b –c + d)*2 ) / 8 |
a=30+5=35
b=30-7=23
c=86
d=60
Листинг программы:
.MODEL small
.STACK 100h
.DATA
.CODE
;входные данные: a,b,c,d
;результат: регистр ax
mov ax,35 ;a=35
add ax,23 ;b=23
sub ax,86 ;c=86
add ax,60 ;d=60
shl ax,1
shr ax,3
END
Отладка программы:
Команда |
Значение регистров |
Значение флагов |
||||||||||
ax |
bx |
cx |
dx |
c |
z |
s |
o |
p |
a |
i |
d |
|
|
0000 |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
mov ax,0023 |
0023 |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
add ax,0017 |
003A |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
sub ax,0056 |
FFE4 |
0000 |
0000 |
0000 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
add ax,003C |
0020 |
0000 |
0000 |
0000 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
shl ax,1 |
0040 |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
shr ax,1 |
0020 |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
shr ax,1 |
0010 |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
shr ax,1 |
0008 |
0000 |
0000 |
0000 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
Конечное значение:
частное: AX=0008H=8D
Алгебраическая проверка:
Вывод: пользуясь операциями сложения, вычитания, умножения и деления
двоичных чисел на языке Ассемблер, я составилa программу для алгоритма решения данной задачи, фактический результат которой сошелся с теоретическим.