Студопедия

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

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

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






  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.