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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






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′







Date: 2015-10-18; view: 373; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию