
лабораторная работа / лабораторные работы по ASSAMBLER / lab2 вариант 10
.doc
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РФ
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
БАЛАКОВСКИЙ ИНСТИТУТ ТЕХНИКИ, ТЕХНОЛОГИИ И УПРАВЛЕНИЯ
факультет: иженерно-строительный
кафедра: управление и информатика в технических системах
Лабораторная работа №2
по дисциплине: СПО
Вариант №10
Выполнил ст. гр. УИТ-32
Есипов С.В.
Принял:
Стельмах И.В.
2006 г.
Цель работы: ознакомление со способами определения данных и изучение механизма передачи управления в программе (циклы и переходы) для операций сравнения.
Задание:
-
Определить массив в области данных
-
Составить алгоритм прграммы, выполняющей действия с элементами массива согласно № варианта (см. табл.).
-
Написать программу на языке ассемблер, реализующей данный алгоритм.
-
Отладить и выполнить программу.
Задание:
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, что соответствует теоретическому результату для заданного массива