49110

Загрузить в ячейку памяти с адресом 6000h число 100 и уменьшать его на единицу, пока результат не станет равен нулю

Курсовая

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

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

Русский

2014-01-07

146.5 KB

12 чел.

ОГЛАВЛЕНИЕ


ВВЕДЕНИЕ

Исторически можно рассматривать ассемблер как второе поколение языков программирования ЭВМ (если первым считать машинный код). Недостатки ассемблера, сложность разработки на нем больших программных комплексов привели к появлению языков третьего поколения — языков программирования высокого уровня (Фортран, Лисп, Кобол, Паскаль, Си и др.). Именно языки программирования высокого уровня и их наследники в основном используются в настоящее время в индустрии информационных технологий. Однако, языки ассемблера сохраняют свою нишу, обуславливаемую их уникальными преимуществами в части эффективности и возможности полного использования специфических средств конкретной платформы.


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

Задача: загрузить в ячейку памяти с адресом 6000h число 100 и уменьшать его на единицу, пока результат не станет равен нулю.

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

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

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

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

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

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


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

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

Вводим данное число в ячейку 6000h и отнимаем от него единицу, используя команду DCR (декремент). Повторяем это действие до тех пор, пока значение ячейки 6000h не станет равным нулю. Остановка происходит, когда признак z становится равным единице. Для предотвращения преждевременной остановки, которая может возникнуть при запуске программы с не обнулённым признаком, мы обнуляем его в основной программе.


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

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

Таблица 1

Адрес

Код

Команда

5000

2E

MVI

L,00

5001

00

5002

2D

DCR

L

5003

21

LXI

H,6000

5004

00

5005

60

5006

CD

CALL

MINUS

5007

0A

5008

50

5009

76

HLT

500A

3E

MINUS: MVI

A,64

500B

64

500C

77

MOV

M,A

500D

35

DCR

M

500E

C2

JNZ

500D

500F

0D

5010

50

5011

C9

RET

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

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

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

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

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


ЗАКЛЮЧЕНИЕ

В результате выполнения данной работы были получены навыки ассемблирования вручную простейших программ на языке ассемблера МП 580ВМ80. Получены навыки по отладке ассемблерных программ.


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

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


(H,L)
6000h

L) (L)-1

(L)00h

Начало

MINUS

Конец

MINUS

(H,L) (H,L)-1

(H,L) (A)

(A)64h

T

RET

z=1

F


 

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

67362. ЮРИДИЧЕСКАЯ ОТВЕТСТВЕННОСТЬ. СОЦИАЛЬНАЯ ОТВЕТСТВЕННОСТЬ И ЕЕ ВИДЫ 143.5 KB
  Ответственность личности имеет социальную природу предопределенную как общественным характером отношений так и особенностями личности ее местом в системе этих отношений. Социальная ответственность возникает тогда когда поведение индивида имеет общественное значение...
67363. Перехоплення всіх винятків 78.5 KB
  Часто доцільно використовувати настанову catch(...) як останній «рубіж» catch-послідовності. У цьому випадку вона забезпечує перехоплення винятків усіх інших типів (тобто не передбачених попередніми catch-виразами). Наприклад, розглянемо ще одну версію попереднього коду програми...
67364. ПРАВОСОЗНАНИЕ И ПРАВОВОЕ ВОСПИТАНИЕ 137 KB
  Нормы права нормативные акты правоприменительные решения и другие юридические феномены могут рассматриваться как своеобразные теоретические и практические проекции культуры для обозначения которых в этом качестве науке необходимо специальное понятие.
67365. Повторне генерування винятку 79.5 KB
  Для того, щоби повторно згенерувати винятки в його обробнику, необхідно використовувати throw-настанову без вказання типу винятку. У цьому випадку поточний виняток передається в зовнішню try/catch-послідовність. Найчастіше причиною для такого виконання настанови throw слугує прагнення мати доступ до одного винятку декільком обробникам.
67366. ПРАВОВАЯ КУЛЬТУРА. ПОНЯТИЕ И ОБЩАЯ ХАРАКТЕРИСТИКА 116.5 KB
  Для раскрытия сущности обозначенной проблемы необходимо рассмотреть исходные предпосылки и принципы формирования теории правовой культуры проанализировать последнюю как объект изучения и типы знаний об этом объекте определить круг исследуемых вопросов...
67368. Потоки. Класи потоків С++ 177.5 KB
  На сьогодні існують дві версії бібліотеки об'єктно-орієнтованого введення-виведення даних, причому обидві широко використовуються програмістами: стара, що базується на оригінальних специфікаціях мови C, і нова – визначається стандартом мови програмування C++.
67369. ПРАВОВОЙ НИГИЛИЗМ И ПРАВОВОЙ ИДЕАЛИЗМ 245.5 KB
  Проблема правового нигилизма и правового идеализма в учебной литературе по теории государства и права до сих пор не рассматривалась. Современное российское общество характеризуется множеством различных противоречий среди которых наблюдается и такое как причудливое переплетение...
67370. Перевантаження операторів введення-виведення даних 85.5 KB
  У розглянутих раніше прикладах програм для виконання операції введення або виведення «класових» даних створювалися функції-члени класів, призначення яких полягало тільки у тому, щоб ввести або вивести ці дані. Незважаючи на те, що у такому вирішенні цих питань немає нічого неправильного, проте у мові...