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 Окно программы на последнем шаге

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


 

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

61197. Решение неравенств с одной переменной 4.08 MB
  При решении неравенств используются следующие свойства: Если из одной части неравенства перенести в другую слагаемое с противоположным знаком, то получится равносильное ему неравенство
61201. Будова тексту. Текстовий редактор WordPad 75 KB
  Мета. Ознайомити учнів з поняттями: абзацний відступ, формування абзацу, способи встановлення параметрів абзацу. Повторити будову тексту, його складові частини, тему і мету.
61202. Вулканізм і явища,що його супроводжують 74 KB
  Мета: сформувати знання про вулкани й гейзери, дати поняття про причини їх утворення; розвивати спостережливість, образну память; виховувати здатність співпереживати.
61203. Приліт Ельзика на планету Земля 40 KB
  Запропонувати завдання: підняти ліву руку; підняти праву руку; подивитися на стелю; подивитися на підлогу. А як потрібно звернути на себе увагу щоб лише тобі надали слово Підняти руку.
61204. Музика і мистецтво слова 62 KB
  Музичний матеріал: українські народні пісні: 1. Про який музичний жанр піде сьогодні мова будь ласка відповіді дітей Так мова піде про пісню слайд 1 А давайте пригадаємо хто пише пісні Вірно композитори та поети а також народ.
61205. Внутрішня будова Землі. Літосфера 71.5 KB
  Мета: Дати учням поняття земна кора і літосфера формувати систему знання про внутрішню будову Землі дати відомості про літосферні плити; розвивати просторову уяву уміння створювати образ обєкта; виховувати інтерес до пізнання природи Землі.