48633

Вычислить среднее арифметическое содержимого двух ячеек памяти с адресами 6000h и 6001h

Курсовая

Информатика, кибернетика и программирование

Поскольку для представления данных используется шестнадцатеричная система счисления, начальные данные необходимо перевести в эту систему счисления.

Русский

2013-12-22

295.5 KB

15 чел.


(A
) (D,E),

(A) (A)+(M)+(C)

A) 2

(H,L)6000h

(D,E)6001h

(B,C)6002h

Начало

Конец

CALL

(A) (A) / (r)

(В,С) (A)

1 ПОСТАНОВКА ЗАДАЧИ

Задача: Вычислить среднее арифметическое содержимого двух ячеек памяти с адресами 6000h и 6001h. Результат — в ячейку 6002h..

Этапы решения задачи:

1. Разработать блок-схему алгоритма решения задачи по заданному варианту

2. Написать программу на языке ассемблера.

3. Ассемблировать программу вручную.

4. Занести программу в память микроЭВМ.

5. Выполнить программу в автоматическом режиме.

6. Если программа не работает, то используя пошаговый режим отладить программу.

2 АНАЛИЗ ЗАДАЧИ И РАЗРАБОТКА АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ

Поскольку для представления данных используется шестнадцатеричная система счисления, начальные данные необходимо перевести в эту систему счисления.

Вводим первое число в ячейку 6000h ( (H,L)←6000h ).Затем вводим второе число в ячейку 6001h ( (D,E)←6001h ). Результат будет записываться  в ячейку 6002h ( (B,C)←6002h ). Задаем в аккумулятор А число байт  ( (А)← 2 ). Вызывается подпрограмма ( CALL 500F). В ячейке 500F идёт занос в стек. Затем сбрасывается флаг переноса СУ. Складываем текущие байты ( A←(D,E) а так же операндов ( A←(H,L) ). Сдвигаем полученный результат вправо (что равносильно делению на 2). В конце передаем содержимое аккумулятора в предварительно подготовленную ячейку памяти, адрес которой  находится в регистровой паре BC (LXI B, STAX B) и заканчиваем программу (HLT).

3 РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ И ЕЁ АССЕМБЛИРОВАНИЕ

В данной работе нет необходимости использовать циклы. Программа выполняет все действия последовательно.

Рисунок 1 Блок-схема алгоритма

Таблица 1

Мнемоника

Код

Описание

LXI H (6000)

21

Первое число

LXI D (6001)

11

Второе число

LXI  B (6002)

01

Результирующее число

MVI A(02)

3E

В А число байт

CALL ADD M

CD

Вызов подпрограммы

HLT

76

Конец

PUSH PSW

F5

Занести в стек (ADD M)

XRA A

AF

Cброс флага переноса СУ

LDAX D

1A

Cложение текущих байтов

ADC M

8E

операндов

RAR

1F

Сдвиг его вправо

STAX B

02

Заполнить результат

INX D

13

Продвинуть указатели

4 ОТЛАДКА И ВЕРИФИКАЦИЯ ПРОГРАММЫ

Заданные значения были «7» и «3» . В результате должно получиться значение «5». При нечетном значении одного из числа , результат округляется в меньшую сторону, при этом в регистре С появляется единица ( C=1).

Таблица 2

BC

DE

HL

A

5003

0000

0000

6000

0000

5006

0000

6001

6000

0000

5009

6002

6001

6000

0000

500B

6002

6001

6000

0200

500F

6002

6001

6000

0200

5010

6002

6001

6000

0200

5011

6002

6001

6000

0044

5012

6002

6001

6000

0344

5013

6002

6001

6000

0A00

5014

6002

6001

6000

0500

5015

6002

6001

6000

0500

 

Начальное и итоговое состояния программы показаны на рисунках 2 и 6.

Как видно из рисунка 2, в начальный момент времени ячейка памяти с адресом 6000h имеет значение 07, 6001h имеет значение 03. Ячейка 6002h свободна от результата.

Рисунок 2 Окно программы на первом шаге

    На следующем шаге, как видно на рисунке 3, содержимое ячейки 5009 передалось в аккумулятор (А = 02).

Рисунок 3 Окно программы на втором шаге

     На третьем шаге программы  содержимое аккумулятора складывает содержимое ячеек 6000 и 6001.

Рисунок 4 Окно программы на третьем шаге

  На следующем шаге выполняется сдвиг вправо, т.е. деление результата на   2.

Рисунок 5 Окно программы на четвертом шаге

     На следующем шаге получим результат  в ячейке 6002h.

Рисунок 6 Окно программы на последнем шаге

Таким образом теоретические значения совпали со значениями выданными программой Ассемблер в пошаговом режиме, что указывает на корректную работоспособность программы.


 

А также другие работы, которые могут Вас заинтересовать

398. Алгоритм микропроцессорного комплекта К580 62.5 KB
  На вход поступает двух проводная линия, по которой поступает параллельный 8-ми разрядный код. Состав кристаллов: ВМ80, ВВ51, ВИ53, ПЗУ/ОЗУ. Посчитать коэффициент преобразования входной величины в выходную.
399. Создание счетчика с произвольным коэффициентом пересчета 101 KB
  Реализовать двоичный вычитающий счётчик с пропуском начальных состояний и коэффициентом пересчёта 10 на RS-триггерах на элементах 1533 серии.
400. Проектирование микропроцессорных устройств обработки данных 341 KB
  Порядок выполнения и содержание основных этапов проектирования систем сбора и обработки данных на основе современной элементной базы — микропроцессорных комплектов БИС.
401. Управление персоналом на предприятии Панифкооп 329 KB
  Концепция управления персоналом организации в условиях рыночных отношений. Взаимоотношения с внутренними и внешними клиентами, руководителями, равными по положению, подчиненными. Обучение, переподготовка, повышение квалификации.
402. Компьютерная графика 951 KB
  Технические средства ввода графической информации. Особенности представления цвета в видеоадаптерах EGA и VGA. Элементарные аффинные преобразования в пространстве, составляющие базис операций машинной графики. Понятие текстуры и способы моделирования текстур.
404. Разработка программы реализирующей цветное движущееся изображение 97 KB
  написание программы для DOS и Windows, отображающую рисование дворников автомобиля. Предусмотрение возможности задания скорости исполнения и приостановки/возобновления выполнения по нажатию клавиши на клавиатуре или мыши (для версии под Windows).
405. Создание программы с цветным движущимся изображением 79 KB
  По заданию требуется разработать программу, реализующую цветное движение: вращение многоугольника (количество углов от 3 до 5 задается пользователем). Алгоритмы работы программ различные, что обусловлено высоким уровнем библиотеки OpenGL и относительно низким уровнем средств DirectX.
406. Разработка электронного устройства на примере RC-генератора 1.72 MB
  Назначение и виды генераторов. Схема трёхзвенной RC-цепи. Генераторы синусоидальных колебаний. Режимы самовозбуждения. Автоматическое смещение с помощью базового делителя. Мощные усилительные каскады. Выбор электрической схемы электронного устройства и её описание.