Скачиваний:
71
Добавлен:
11.02.2014
Размер:
124.42 Кб
Скачать

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ

САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

БАЛАКОВСКИЙ ИНСТИТУТ ТЕХНИКИ, ТЕХНОЛОГИИ И УПРАВЛЕНИЯ

факультет: иженерно-строительный

кафедра: управление и информатика в технических системах

Лабораторная работа №1

по дисциплине: СПО

Вариант №10

Выполнил ст. гр. УИТ-32

Принял:

.

2006 г.

Цель работы: изучение операций сложения, вычитания, умножения и деления

двоичных чисел на языке Ассемблер.

Задание:

  1. Написать программу на языке Ассемблер, реализующей заданное выражение из таблицы. Номер варианта соответствует номеру по списку.

  2. Проассамблировать программу.

  3. Отладить и проследить пошаговое выполнение программы с помощью отладчика DEBUG либо TURBO DEBUGER.

Залание:

10

Y = ((a -d)*3 - c) / (b-5)*2

a=19

b=2

c=10

d=20

Листинг программы:

.MODEL small

.STACK 100h

.DATA

.CODE

mov ax,2

sub ax,5

shl ax,1

mov cx,ax

mov ax,19

sub ax,20

mov bx,3

imul bx

sub ax,10

idiv cx

mov ah,4ch ;DOS terminate program function

int 21h ;terminate the program

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,0002

0002

0000

0000

0000

0

0

0

0

0

0

1

0

sub ax,0005

FFFD

0000

0000

0000

1

0

1

0

0

1

1

0

shl ax,1

FFFA

0000

0000

0000

1

0

1

0

1

1

1

0

mov cx,ax

FFFA

0000

FFFA

0000

1

0

1

0

1

1

1

0

mov ax,0013

0013

0000

FFFA

0000

1

0

1

0

1

1

1

0

sub ax,0014

FFFF

0000

FFFA

0000

1

0

1

0

1

1

1

0

mov bx,0003

FFFF

0003

FFFA

0000

1

0

1

0

1

1

1

0

imul bx

FFFD

0003

FFFA

FFFF

0

0

1

0

1

1

1

0

sub ax,000A

FFF3

0003

FFFA

FFFF

0

0

1

0

1

0

1

0

idiv cx

0002

0003

FFFA

0001

0

0

0

0

0

1

1

0

Результат от конечного деления:

частное: AX=0002H=2D

остаток: DX=0001H=1D

Алгебраическая проверка: ((19-20)*3-10)/(2-5)*2=-13/(-6)=2, ост. 1

Вывод: пользуясь операциями сложения, вычитания, умножения и деления

двоичных чисел на языке Ассемблер, я составил программу для алгоритма решения данной задачи, фактический результат которой сошелся с теоретическим.

Соседние файлы в папке лабораторные работы по ASSAMBLER