49109

Архитектура и системы команд микропроцессора К580. Достоинства и недостатки ассемблера

Курсовая

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

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

Русский

2014-01-07

119.5 KB

15 чел.

ОГЛАВЛЕНИЕ

[0.0.1] Достоинства ассемблера

[0.0.2] Недостатки ассемблера


ВВЕДЕНИЕ

Достоинства ассемблера

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

Недостатки ассемблера

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

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

Задача:  Непрерывно, начиная с числа 0lh, наращивать на единицу содержимое ячейки памяти с адресом 6000h до появления признака переноса. Результат поместить в регистр В.

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

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

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

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

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

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

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

В результате выполнения программы мы должны получить в регистре В значение равное 0. Когда происходит переполнение, признак с становится равным единице. Затем значение являющееся результатом переноса помещается в регистр В.

Вводим данное число в ячейку 6000h и к нему прибавляем единицу. Повторяем это действие до тех пор, пока значение ячейки 6000h не станет равным нулю. Остановка происходит, когда признак с становится равным единице. Результат заносится в регистр В.


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

Для реализации поставленной задачи нужно запомнить входные данные

В программе осуществляется последовательное увеличение содержимого ячейки 6000h на 1 путем сложения до тех пор, пока признак переноса «с» не станет равным «1»

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

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

Адрес

Код

Команда

4000

21

LXI

H,6000h

4001

00

4002

60

L

4003

3E

MVI

A,01h

4004

01

4005

06

MVI

B,01h

4006

01

4007

77

MOV

M,A

4008

88

ADC

B

4009

77

MOV

M,A

400A

D2

JNC

4008h

400B

08

400C

40

400D

47

MOV

B,A

400E

76

HLT

Таблица 1 - кодирование

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

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

Для просмотра результатов выполнения программы нужно посмотреть на окна регистров и флагов. А так же установить в окне памяти начальный адрес 4000h. Для этого сделать щелчком "мыши" окно памяти активным и выполнить команду меню: "NavigateJump to".

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

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

ЗАКЛЮЧЕНИЕ

В результате выполнения программы признак переноса с стал равен 1, соответственно произошёл перенос и программа работает верно.

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

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


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

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

                                                                                                                                                                   4


Начало

H,L)6000h

(A)01h

(B) 01h

Конец

(H,L) (A)

c=0

T

F

(A) (A)+(B)

(H,L) (A)

(B)(A)