48632

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

Курсовая

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

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

Русский

2013-12-22

242 KB

7 чел.

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


 

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

11007. Рационалистическая метафизика 17 века (Декарт, Спиноза, Лейбниц) 38 KB
  Рационалистическая метафизика 17 века Декарт Спиноза Лейбниц Рационализм направление признающее разум основой познания и поведения людей. Начал складывать в результате развития математики и естествознания. Исходит из идеи естественного порядка. Утверждает опр
11008. Полемика славянофилоф и западников в русской философии 74 KB
  Полемика славянофилоф и западников в русской философии Своеобразным направлением в русской философии явилось славянофильство ярким представиетелм которого были А.С.Хомяков 18041860 и И.В.Киреевский 18061856 оказавшие значительное воздействие на развитие русской мыс
11009. Истоки философии. Хронология и краткая характеристика основных этапов 46 KB
  Тема. Истоки философии Хронология и краткая характеристика основных этапов. Причины возникновения философии являются и причиной её развития. Данный вопрос является дискуссионным. Основные этапы развития мировой философии преимущественно связываются только с развит...
11010. Гносеология или теория познания 55 KB
  Гносеология. Гносеология или теория познания – это раздел философии в котором изучаются природа познания и его возможности отношение знания к реальности выявляются условия достоверности и истинности познания. Термин Гносеология происходит от греческих слов g...
11011. Закономерности исторического развития техники 46 KB
  Закономерности исторического развития техники. Проблема периодизации. Предметная сторона Т. Техника и наука. Т как деятельность. ФТ выделяет общие закономерности и стадии исторической эволюции Т потом это будет конкретизировано в истории Т. В отличие...
11012. Социальная роль техники 47 KB
  Социальная роль техники. Техника как основа социального прогресса. Информационное общество. Понятие техногенной цивилизации. Антитехницизм и его основания. Рассмотрены различные периодизации истории техники. Каждая новая стадия в развитии техники в
11013. Техника и наука в контексте культуры 58 KB
  Техника и наука в контексте культуры Специфика техники как феномена культуры. Технические науки как тип наук. В имеющихся определениях техники обнаруживается существенно общий смысловой срез: по отношению к человеку техника является вопервых воплощ
11014. Философия техники как область исследований 63 KB
  Философия техники как область исследований. ФТ в структуре философского знания. Проблема определения Т. Ответить на вопрос что такое ФТ можно с двух сторон: показав как он выделяется из философии вообще и рассмотрев что такое Т как основной объект ее
11015. Этика науки и техники 51 KB
  Этика науки и техники. Этика науки и техники как этика ответственности. Внутренняя и внешняя этика науки и техники. Проблема этической размерности научной деятельности и технического творчества обозначилась в ХХ в.: достаточно долго этические проблемы на...