Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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

mov dx, offset T4

jmp Err

L3: loop L2

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 N dup (?); 2*N байт

data1 ends

data2 segment

Y dw N dup (?); 2*N байт

data2 ends

St segment stack

dw 64 dup (?)

St ends

code segment

assume cs: code, ds: data1, es: date2, ss: st

begin_of_program:

mov ax, data1

mov ds, ax; ds – на начало data1

mov ax, data2

mov es, ax; es – на начало data2

mov dx, offset T1; Приглашение к вводу

Outstr

outch ′ X′

Newline

mov cx, N; счётчик цикла

mov bx, 0; индекс массива

L1: inint X[bx]; ввод очередного элемента X[i]

add bx, 2; увеличение индекса, это i: =i+1

loop L1

outstr; Приглашение к вводу

outch ′ Y′






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.