Главная страница
Навигация по странице:

  • Адрес Команда Примечание Мнемокод

  • ЛР3. Задание Написать программу определения максимального отрицательного числа Записать программу в мнемокодах, введя ее в поле окна Текст программы


    Скачать 127.09 Kb.
    НазваниеЗадание Написать программу определения максимального отрицательного числа Записать программу в мнемокодах, введя ее в поле окна Текст программы
    АнкорLr3 assembler
    Дата02.12.2022
    Размер127.09 Kb.
    Формат файлаdocx
    Имя файлаЛР3.docx
    ТипДокументы
    #824246

    Задание

    1. Написать программу определения максимального отрицательного числа

    2. Записать программу в мнемокодах, введя ее в поле окна Текст программы.

    3. Сохранить набранную программу в виде текстового файла и произвести ассемблирование мнемокодов.

    4. Загрузить в ОЗУ необходимые константы и исходные данные.

    5. Отладить программу.


    Обозначения в граф-схеме алгоритма:

    AiиAjадресы чисел из одного и того же массива, i{1, 2,..., 10};

    k1 и k2— счетчики циклов, определяющих число повторений тел циклов;

    M(Ai) и M(Aj) числа массива с адресами Aiи Aj;

    Max-min минимальное положительное число.



    Таблица 1. Текст программы

    Адрес

    Команда

    Примечание

    Мнемокод

    Код

    000

    RD #50

    211050

    Загрузка начального адреса массива 050

    001

    WR 40

    220040

    в ячейку 040

    002

    WR 42

    220042

    и в ячейку 042

    003

    RD #10

    211010

    Загрузка параметра цикла k1 =10

    004

    WR 41

    220041

    в ячейку 041

    005

    WR 43

    220043

    Загрузка параметра цикла k2 =10 в ячейку 043

    006

    M1: RD @40

    212040

    Чтение очередного элемента массива

    007

    JS M2

    130016

    и переход, если он отрицательный

    008

    RD 40

    210040

    Модификация текущего

    009

    ADD #1

    231001

    адреса массива

    010

    WR 40

    220040

    (переход к следующему адресу)

    011

    RD 41

    210041

    Уменьшение счётчика

    012

    SUB #1

    241001

    (параметра циклаk1)

    013

    WR 41

    220041

    на 1

    014

    JNZ M1

    120006

    Проверка параметра цикла и переход при k1 ≠ 0,

    015

    JMP 032

    100032

    иначе переход в конец программы

    016

    M2: WR 44

    220044

    Запись в Max-minотрицательного элемента массива (в ячейку 044)

    017

    M3: RD @42

    212042

    Чтение очередного элемента массива

    018

    JNS M4

    140023

    и переход, если он положительный

    019

    SUB 44

    240044

    Сравнение сMax-min и переход, если

    020

    JS M4

    130023

    очередной отрицательный элемент массива меньше, чем Max-min

    021

    RD @42

    212042

    Иначе, чтение очередного отрицательного элемента массива

    022

    WR 44

    220044

    и запись его в Max-min(в ячейку 044)

    023

    M4: RD 42

    210042

    Модификация текущего

    024

    ADD #1

    231001

    адреса массива

    025

    WR 42

    220042

    (переход к следующему адресу)

    026

    RD 43

    210043

    Уменьшение счётчика

    027

    SUB #1

    241001

    (параметра циклаk2)

    028

    WR 43

    220043

    на 1

    029

    JNZ M3

    120017

    Проверка параметра цикла и переход при k2 ≠ 0

    030

    RD 44

    210044

    Вывод

    031

    OUT

    020000

    результата

    032

    HLT

    090000

    Стоп




    Значения исходных данных (строка 050)


    Результат выполнения программы


    написать администратору сайта