48631

Умножить содержимое ячейки памяти 6000Н на 5

Курсовая

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

РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ И ЕЁ АССЕМБЛИРОВАНИЕ В данной работе нет необходимости использовать циклы. Рисунок 1 Блоксхема алгоритма Таблица 1 Мнемоника Код Описание LXI H 6000 21 Множимое число MOV M 7E Заносим множимое число в аккумулятор RL 17 Содержимое А сдвинуть влево RL 17 Снова сдвинуть DD M 86 Сложить А с регистром М LXI В 6001 01 Зададим ячейку результата STX B 02 Запомнить результат в В ячейка 6001 HLT 76 Конец 4 ОТЛАДКА И ВЕРИФИКАЦИЯ ПРОГРАММЫ Заданное число было взято 1 Записано в регистре H в ячейке памяти...

Русский

2013-12-22

152.5 KB

9 чел.


(A
n+1) (An),

(c)(A), (A0) (c)

A) ((M))

(H,L)6000h

Начало

Конец

((B,C)) (A)

(An+1) (An),

(c)(A), (A0) (c)

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

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

Задача: Умножить содержимое ячейки памяти 6000Н на 5. Результат — в ячейку 6001Н. Этапы решения задачи:

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

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

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

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

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

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

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

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

Вводим данное число в ячейку 6000h ( (H,L)←6000h ). Передаем содержимое (введенное число)  регистра (H) в аккумулятор – А ( (А)←((H,L)) ). Содержимое аккумулятора сдвигаем на один разряд влево (что будет равносильно умножению на два), повторим это действие, чтобы получить умножение на 4. Затем сложим аккумулятор с регистром – H, результат в аккумуляторе (В аккумуляторе хранится введенное число, умноженное на пять). В конце передаем содержимое аккумулятора в предварительно подготовленную ячейку памяти, адрес которой  находится в регистровой паре BC (LXI B, STAX B) и заканчиваем программу (HLT).

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

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

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

Таблица 1

Мнемоника

Код

Описание

LXI H (6000)

21

Множимое число

MOV A,M

7E

Заносим множимое число в аккумулятор

RAL

17

Содержимое А сдвинуть влево

RAL

17

Снова сдвинуть

ADD M

86

Сложить А с регистром М

LXI В (6001)

01

Зададим ячейку результата

STAX B

02

Запомнить результат в В (ячейка 6001)

HLT

76

Конец

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

Заданное число было взято «1» (Записано в регистре H, в ячейке памяти 6000h). На выходе должно получиться значение «5». В таблице 2 приведен пример корректной работы программы.

Таблица 2

Регистры

H

A

B

01

00

00

01

01

00

01

02

00

01

04

00

01

05

05

 

Начальное и итоговое состояния программы показаны на рисунках 2 и . Как видно из рисунка 2, в начальный момент времени ячейка памяти с адресом 6000h имеет значение 01.

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

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

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

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

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

 

  На следующем шаге выполнив предыдущее действие получим в аккумуляторе  значение А=4.

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

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

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

На последнем шаге работы программы (рисунок 6) содержимое аккумулятора передается в указанную ячейку памяти регистра В (6001 05).

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

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


 

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

77206. Разработка программного обеспечения системы программно-аппаратной защиты ПО 381.5 KB
  Данная курсовая работа является частью проекта по разработке системы программно-аппаратной защиты ПО. Данный комплекс представляет собой комбинированную систему, предназначенную для защиты коммерческого программного обеспечения от несанкционированного использования или для защиты...
77208. Поддержка языка Lisa в среде Eclipse 293 KB
  В компании Parallels ведётся разработка продукта StellArt IDE – среда программирования на основе Eclipse для языка Lisa. Я участвую в разработки данного продукта. Продукт разрабатывается по технологии Scrum, так что каждый месяц в течение всего периода разработки поставляется...
77209. Инструмент аспектно-ориентированного программирования Aspect.Java 628 KB
  Данная курсовая работа посвящена такой относительно новой методологии в разработке программного обеспечения как аспектно-ориентированное программирование. Суть данного подхода – поддержка разработки и модификации сквозной функциональности (cross-cutting concerns) в больших программных системах.
77210. Разработка framework для JSR 290 TCK 450 KB
  Technology Compatibility Kit (TCK) – тестовая сюита, позволяющая протестировать реализацию какого-либо Java Specification Request (JSR) на соответствие спецификации. Это одна из трех составляющих ратифицированного JSR в Java Community Process, которыми являются: Спецификация JSR JSR Reference Implementation
77211. АКТОРНОЕ РАСШИРЕНИЕ ЯЗЫКА JAVA В СРЕДЕ MPS 243 KB
  В качестве средства создания расширения была выбрана среда мета-программирования MPS что позволило автоматически получить интегрированные средства разработки для применения расширения и кроме того достичь совместимости с другими языковыми расширениями созданными в среде MPS. Название средства Совместимость расширений Языковая инфраструктура LISP Есть Нет Внутренние языки в Ruby Groovy Есть Нет XText frmework Нет Есть...
77212. Исследование работы с географическими данными в Oracle 10g 482.5 KB
  Спроектировать базу данных с учетом специфики хранимой информации; Перенести собранную обо всех электростанциях информацию в БД; Разработка интерфейса администратора для мониторинга и управления информационной системой.
77213. СОЗДАНИЕ СРЕДЫ РАЗРАБОТКИ ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ OCAML 96 KB
  OCaml в настоящее время является активно развивающимся языком программирования. Секрет его успеха, возможно, заключается в том, что этот язык интуитивно понятен и прост для изучения даже неопытным программистом.
77214. Cоздание дискретизирующего фильтра для обработки электроокулограмм. Обеспечение работы и настройки фильтра в режиме реального времени 512 KB
  Причиной этих бросков служит тот факт, что глазное яблоко представляет собой электрический диполь (сетчатка заряжена отрицательно относительно роговицы), поэтому при поворотах глазного яблока в районе глаз регистрируется изменение разности потенциалов.