49150

Программа, выполняющая перенос значения ячейки памяти с сохранением знакового разряда

Курсовая

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

Трансляция программы в исполняемый машинный код производится ассемблером от англ. Обеспечение максимального использования специфических возможностей конкретной платформы что также позволяет создавать более эффективные программы с меньшими затратами ресурсов. 3 РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ Для реализации поставленной задачи необходимо загрузить в аккумулятор значение ячейки памяти по адресу 6000Н затем непосредственно в аккумуляторе выполнять требуемые операции. Кодирование 5 ОТЛАДКА И ВЕРИФИКАЦИЯ ПРОГРАММЫ Начальное и итоговое состояния...

Русский

2013-12-21

153 KB

13 чел.

ОГЛАВЛЕНИЕ

[0.0.1] Достоинства


ВВЕДЕНИЕ

Язы́к ассе́мблера — язык программирования низкого уровня, мнемонические команды которого (за редким исключением) соответствуют инструкциям процессора вычислительной системы. Трансляция программы в исполняемый машинный код производится ассемблером (от англ. assembler - сборщик) - программой-транслятором, которая и дала языку ассемблера его название.

Достоинства

  •  При достаточной квалификации программиста, язык ассемблера позволяет писать самый быстрый и компактный код. Возможно, даже лучше, чем генерируемый трансляторами языков более высокого уровня.
  •  Обеспечение максимального использования специфических возможностей конкретной платформы, что также позволяет создавать более эффективные программы с меньшими затратами ресурсов.
  •  При программировании на языке ассемблера возможен непосредственный доступ к аппаратуре, в том числе портам ввода-вывода, регистрам процессора и др.

Недостатки

  •  В силу машинной ориентации («низкого» уровня) языка ассемблера человеку сложнее читать и понимать программу на нём по сравнению с языками программирования высокого уровня; программа состоит из слишком «мелких» элементов — машинных команд, соответственно, усложняются программирование и отладка, растёт трудоёмкость, велика вероятность внесения ошибок.
  •  Требуется высокая квалификация программиста. Код на ассемблере выполняется быстрее, но написанный неопытным программистом, обычно оказывается хуже сгенерированного компилятором

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

Задача: Сдвинуть содержимое ячейки памяти 6000Н вправо на три позиции, сохранив знаковый разряд.

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

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

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

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

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

5. Выполнить программу.

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

Память микропроцессора K580 представляет собой совокупность  ячеек из 8 бит, т.е. 1 байт. Старший бит ячейки совпадает с признаком знака. Для того, чтобы сохранить знаковый разряд, необходимо произвести циклический сдвиг на один разряд влево. Нулевой разряд и признак С приобретают значение старшего  7 – го разряда ячейки, которое оно имело до сдвига. Теперь мы имеем в регистре F знаковый разряд ячейки, подлежащей сдвигу. Далее нам необходимо произвести перенос вправо на 4 позиции вправо, т.к. мы до этого совершили сдвиг влево, а по условию задачи, нам необходимо произвести сдвиг вправо на 3 позиции. Сдвиг мы будем осуществлять через признак С, т.о. сохранив знаковый разряд содержимого ячейки.


3 РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ

Для реализации поставленной задачи необходимо загрузить в аккумулятор значение ячейки памяти по адресу 6000Н, затем непосредственно в аккумуляторе выполнять требуемые операции.

 

Рисунок 1. Блок-схема

4 КОДИРОВАНИЕ

Адрес

Код

Команда

5000

11

LXI

D,6000

5001

00

5002

60

5003

1A

LDAX

D

5004

07

RLC

5005

1F

RAR

5006

1F

RAR

5007

1F

RAR

5008

1F

RAR

5009

76

HLT

Таблица 1. Кодирование

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

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

Для того, чтобы запустить программу, необходимо установить счетчик команд по адресу 5000. Затем необходимо ввести в ячейку памяти по адресу 6000Н число, подлежащее переносу. Для этого сделать щелчком "мыши" окно памяти активным и выполнить команду меню: "NavigateJump to".

Регистр (А) служит для хранения значения перемещаемой ячейки. В регистровой паре (DЕ) хранится адрес ячейки , в которой храниться число. PC – счетчик команд. Его необходимо установить на начало программы.

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

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

ЗАКЛЮЧЕНИЕ

В результате проведенной работы были изучены архитектура и системы команд микропроцессора К580, была написана программа, выполняющая перенос значения ячейки памяти с сохранением знакового разряда. Также было осуществлено ассемблирование вручную этой программы на языке ассемблера МП 580 и получены навыки по отладке ассемблерных программ. Для решения задачи была использована справочная литература, содержащая коды команд и другие теоретические сведения.


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1.  Степанов А.Н. Архитектура вычислительных систем и компьютерных сетей/А.Н. Степанов – СПб.: Питер, 2007. – 509 с.
  2.  Таненбаум Э. Архитектура компьютера/Э. Таненбаум  – СПб.: Питер, 2003 – 704 с.
  3.  Топольский Д.В. Топольская И.Г., Микропроцессоры. Методические указания по выполнению лабораторных работ. – Челябинск: ЮУрГУ, 2003 – 31с. 

                                                                                                                                                                   4


Начало

An+1)(An)

(A0)(A7)

(C)(A7)

(DE) 6000h

Конец

(A) ((DE))

(An)(An+1)

(C)(A0)

(A7)(C)

(An)(An+1)

(C)(A0)

(A7)(C)

(An)(An+1)

(C)(A0)

(A7)(C)

(An)(An+1)

(C)(A0)

(A7)(C)


 

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

49111. Вычесть содержимое ячейки памяти с адресом 6001H из содержимого ячейки памяти с адресом 6000Н. Занести результат в ячейку памяти с адресом 6002H, если результат положительный, иначе — в ячейку 6003Н 433 KB
  Директивы ассемблера позволяют включать в программу блоки данных (описанные явно или считанные из файла); повторить определённый фрагмент указанное число раз; компилировать фрагмент по условию; задавать адрес исполнения фрагмента, менять значения меток в процессе компиляции; использовать макроопределения с параметрами и др.
49113. Диэлектрическая линзовая антенна 1.83 MB
  Расчёт параметров линзы. Линзовые антенны представляют собой совокупность электромагнитной линзы и облучателя. В основе проектирования линзовых антенн лежит использование оптических свойств электромагнитных волн которые проявляются при размерах и радиусах кривизны поверхности линзы много больших длины волны. Сейчас зачастую используются металлодиэлектрические линзы которые обладают лучшими массогабаритными показателями но при этом коэффициент преломления таких линз оказывается сильно зависящим...
49114. Диэлектрическая линзовая антенна 590 KB
  Краткие теоретические сведения Расчет параметров линзы Расчёт облучателя Расчет диаграммы направленности антенны Конструкция антенны Заключение Список используемой литературы Задание Краткие теоретические сведения Линзовая антенна состоит из электромагнитной линзы и облучателя. Назначение линзы трансформировать фронт волны создаваемый облучателем в плоский и сформировать требуемую диаграмму направленности ДН. Принцип работы линзовых антенн основан на...
49115. Волноводно-щелевая антенна (ВЩА) 315.5 KB
  Волноводно-щелевые линейные антенны обеспечивают сужение диаграммы направленности ДН в плоскости проходящей через ось волновода. Волноводно-щелевые антенны имеют следующие достоинства: отсутствие выступающих частей позволяет совместить их излучающую поверхность с внешней поверхностью корпуса летательного аппарата при этом не вносится дополнительное аэродинамическое сопротивление бортовая антенна; возможность реализации оптимальных ДН так как законы распределения поля в раскрыве различны изза изменения связи излучателей с...
49116. Проект электропривод для машины, состоящей из электродвигателя, клиноременной передачи и рабочего органа 1.04 MB
  Характерной особенностью работы механических КШМ является резко пиковый характер нагрузки поэтому в приводах этих машин необходимо исключительно увеличить маховой момент путем установления специального накопителя энергии маховика. В этом случае резисторы в роторной цепи электродвигателя выполняют одновременно две задачи: Дают возможность в зависимости от характера рабочей операции установить необходимое скольжение а следовательно и оптимальный режим работы системы маховикэлектродвигатель; Улучшают пусковые условия при первоначальном...
49117. АНАЛИЗ И СИНТЕЗ ФИЛЬТРОВ 302 KB
  Схема исследуемого фильтра Для данного звена требуется: Найти передаточную функцию по напряжению Найденную передаточную функцию представить в виде отношения двух полиномов коэффициенты которых выражены через параметры элементов цепи в общем виде; ту же функцию записать с вычисленными значениями коэффициентов полиномов числителя и знаменателя; вычислить значение добротности полюса. Составим узловые уравнения: Подставив данные в выражение Hp получим передаточную функцию в численном виде: Заменив р на iw в операторной передаточной...
49118. Облачные вычисления, как относительно новые технологии 559 KB
  На сегодняшний день существует множество определений облачных вычислений. Поддержка облачных вычислений в сочетании с инвестициями в молодые компании создают быстро развивающуюся экосистему инновационных производств. Целью курсовой является анализ технологии реализации облачных вычислений в продуктах фирмы 1С.
49119. Программирование Sepam 20 443 KB
  В ходе выполнения лабораторной работы я ознакомилась и научилась программировать реле Sepam 20. Оно осуществляет защиту от всех основных типов аварийных режимов, имеет удобный интерфейс для программирования и ряд преимуществ перед старыми аппаратами.