Newline. jcxz Pech; На печать результата
Finish
L1: mov cx,N; Счётчик цикла
jcxz Pech; На печать результата
mov dx,offset T3; Приглашение к вводу
Outstr
Newline
L2:inint ax; Ввод очередного числа
cmp ax,-2000
jl L3
cmp ax,5000
jg L3; Проверка диапазона
add S,ax; Суммирование
jno L3; Проверка на переполнение S
movdx,offsetT4
jmp Err
L3: loopL2
Pech: outch ′S′
outch ′=′
outint S
Newline
Finish
code ends
end start
В качестве ещё одного примера рассмотрим использование циклов при обработке массивов. Пусть необходимо составить программу для решения следующей задачи. Задана константа N=20000, надо ввести массивы X и Y по N беззнаковых чисел в каждом массиве и вычислить выражение
Для простоты будем предполагать, что каждое из произведений и вся сумма имеют формат dw (помещаются в слово). Ниже приведена программа, решающая эту задачу.
include io.asm
N equ 20000; Аналог Const N=20000; Паскаля
data1 segment
T1 db ′Вводите числа массива $′
T2 db ′Сумма = $′
T3 db ′Ошибка – большое значение!′,10,13,′$′
S dw 0; искомая сумма
X dw Ndup (?); 2*N байт
data1 ends
data2 segment
Y dw Ndup (?); 2*N байт
data2 ends
Дата добавления: 2015-10-05; просмотров: 522;