48632

Складывать содержимое последовательных ячеек памяти до появления признака переноса CY

Курсовая

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

В данной работе используется цикл с постусловием. 4 ОТЛАДКА И ВЕРИФИКАЦИЯ ПРОГРАММЫ Заданные числа были равны 8050 в 16й системе счисления Записаны в ячейки памяти 6000h6004h. В таблице 2 приведен пример корректной работы программы. Таблица 2 Регистры H 50 50 50 0 50 F0 50 40 Начальное и итоговое состояния программы показаны на рисунках 2 и 6.

Русский

2013-12-22

242 KB

12 чел.

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

Задача: Складывать содержимое последовательных ячеек памяти до появления признака переноса CY. Адрес первой ячейки 6000Н. Этапы решения задачи:

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

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

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

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

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

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

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

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

Обнуляем аккумулятор и принудительно устанавливаем признак переноса  С=0. Вводим данные в ячейки 6000h-6004h ( (H,L)←6000h ). Передаем содержимое аккумулятора и регистра (H) в аккумулятор – А ( (А)←(А)+((H,L)) ).

Увеличиваем содержимое регистровой пары на 1 ( (HL) ←(HL)+1 ). Далее используем  команду – Переход к метке по условию. В данном случае условием будет являться С=0 – Отсутствие переноса, NC (NO Carry). При истинности этого условия программа переходит к метке ( (А)←(А)+((H,L)) ). Если же условие становиться ложным: С=1- Перенос, заканчиваем программу (HLT).

 

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

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

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

Таблица 1

Мнемоника

Код

Описание

MVI A

3A

Передаем в аккумулятор ноль.

STC

37

Устанавливаем признак переноса С=1.

CMC

3F

Инвертируем признак переноса^ С=0.

LXI H

21

В регистрах HL первый адрес.

ADD M

86

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

INX H

23

Увеличиваем содержимое регистровой пары на 1.

JNC

D2

Повторить.

HLT

76

Конец.

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

Заданные числа были равны «80(50 в 16й системе счисления)» (Записаны в ячейки памяти 6000h-6004h). После прибавления значения ячейки 6004h программа должна прекратить работу из за появления признака переноса С=1(Перенос возникает, когда число в аккумуляторе превышает значение 255). В таблице 2 приведен пример корректной работы программы.

Таблица 2

Регистры

H

A

50

50

50

A0

50

F0

50

40

 

Начальное и итоговое состояния программы показаны на рисунках 2 и 6. Как видно из рисунка 2, в начальный момент времени ячейки памяти с адресами 6000h-6004h имеют значение 50; Аккумулятор имеет значение 0 (AF=0); Признак переноса С=0.

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

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

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

     На третьем шаге программы  увеличиваем значение HL на 1.

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

  На следующем  шаге, после проверки условия (С=0) мы переходим к адресу 5007 и далее в аккумулятор заносится сумма первой и второй ячеек (6000h и 6001h). AF=A0 (160 в 10й системе счисления).

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

           На следующем шаге программы  увеличиваем значение HL на 1.

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

На следующем шаге работы программы (рисунок 6), после проверки условия (С=0) мы переходим к адресу 5007 и далее в аккумулятор заносится сумма первой и второй и третей ячеек (6000h, 6001h, 6002h). AF=F0 (240 в 10й системе счисления).

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

На следующем шаге программы  увеличиваем значение HL на 1.

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

На следующем шаге работы программы (рисунок 8), после проверки условия (С=0) мы снова переходим к адресу 5007 и далее в аккумулятор к сумме первых трех ячеек добавляется четвертая (6000h, 6001h, 6002h, 6003h). Теперь сумма в аккумуляторе превышает значение 255 и в программе появляется флаг переноса С=1.

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

На последнем шаге работы программы условие отсутствия переноса (С=0) становиться ложно и программа завершается (HLT).

Рисунок 9 кно программы на следующем шаге

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

PAGE  13


(A)
 (A)+((HL))

H,L)6000h

A=0

C=1

C=0

Начало

Конец

C=1

(HL) (HL)+1


 

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

6196. Разработка методики исследований. Планирование и проведение исследований 137.5 KB
  Понятие методики системного анализа О разработке методики системного анализа. Методика системного анализа разрабатывается и применяется в тех случаях, когда у лиц, принимающих решения ППР на начальном этапе нет достаточных сведений о проблемно си...
6197. Философия в эпохи Средневековья и Возрождения 104 KB
  Философия в эпохи Средневековья и Возрождения. Вопрос 1 Философия Аврелия Августина и Фомы Аквинского. Люби, и тогда делай, что хочешь (А. Августин). Истина должна быть конечной целью вселенной (Ф.Аквинский). Жизнь и труды А. Августина. Апогеем разв...
6198. Защищенный документооборот и технологические системы обработки и хранения конфиденциальных документов 165 KB
  Защищенный документооборот и технологические системы обработки и хранения конфиденциальных документов 1. Конфиденциальность документов 1. Понятие о конфиденциальной информации и конфиденциальности документов В современной российской рыно...
6199. Коллекции данных и их обработка на языке С# и в среде Net 219 KB
  Коллекции В некоторых ситуациях возникает потребность хранения более одного элемента в коллекциях данных. Может понадобиться хранить группу или коллекцию, некоторым образом включенную в более крупную конструкцию. Язык С# и среда Net представляют мно...
6200. Основные теоремы дифференциального исчисления 64.72 KB
  Основные теоремы дифференциального исчисления. Теорема Ферма. Пусть функция определена и дифференцируема на интервале (а,в) и в некоторой точке принимает наибольшее или наименьшее значение...
6201. Философия как универсальный научный метод 103.5 KB
  Философия как универсальный научный метод. Природой можно руководить, лишь подчиняясь ей (Ф. Бэкон). Вопрос 1 Проблемы философии Нового времени и эмпиризм Ф. Бэкона. Проблемы философии Нового времени в контексте развития науки. Исторически, Новое вр...
6202. Генетика прокариот 96 KB
  Генетика прокариот 1. Организация прокариотической клетки. Размножение прокариот. 2. Геномика прокариот. 3. Вирусы. Геномика вирусов. Разнообразие форм и жизненных циклов вирусов. Рекомбинация в разных группах вирусов. 4. Рекомбинация у прокариот: т...
6203. Реклама как вид маркетинговой коммуникации в журналистике 105.5 KB
  Реклама как вид маркетинговой коммуникации в журналистике Существует великое множество определение рекламы. По мнению Ф. Котлера реклама представляет собой неличные формы коммуникации, осуществляемые через посредство платных средств распростр...
6204. Потребительское поведение 81.5 KB
  Потребительское поведение Закон убывающей предельной полезности. Процесс рационального выбора. Потребительские предпочтения. Кривые безразличия и бюджетные ограничения. Равновесие потребителя. Закон спроса имеет очень большое значение, ...