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

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

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

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

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

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

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

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

Вариант №10

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

Есипов С.В.

Принял:

Стельмах И.В.

2006 г.

Цель работы: ознакомление со способами определения данных и изучение механизма передачи управления в программе (циклы и переходы) для операций сравнения.

Задание:

  1. Определить массив в области данных

  2. Составить алгоритм прграммы, выполняющей действия с элементами массива согласно № варианта (см. табл.).

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

  4. Отладить и выполнить программу.

Задание:

10

Наити количество положи-тельных элементов массива, попавших в заданный интервал

(7;28)

11

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

DOSSEG

.MODEL small

.stack 100h

.data

massiv DB -1,12,13,-3,30,2,44,4,22,6,7

.code

mov ax,@data

mov ds,ax ; определение адреса данных в регистре ds

mov cx,11 ; количество элементов

mov dx,0 ; сумма

lea bx,massiv ; адрес начала массива в регистре bx

m1:

mov al,[bx]

mov ah,0 ; обнуляем ah, чтобы не влияло на результат сравнения

cmp al,7

jl m2 ; если меньше 7, то на метку m2 (следующий элемент массива)

cmp al,28

ja m2 ; если больше 28 – на метку m2

add ax,dx ; иначе – считаем прибавить к сумме данный элемент

mov dx,ax

m2:

inc bx ; следующий элемент

loop m1 ; конец цикла

mov ah,4ch

int 21h ; конец программы

END

В конце выполнения программы dx=0036H=54D, что соответствует теоретическому результату для заданного массива

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