Разработка программ преобразования форматов двоичных данных и сортировок в машинных кодах микро-ЭВМ СМ-1800 с помощью эмулятора на ПК

Арифметические действия над двоично-десятичными кодами. Стандарты кодирования текстов. Проектирование алгоритма и его реализация на эмуляторе микро-ЭВМ СМ-1800. Листинг программы и использованные, при проектировании, средства вычислительной техники.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 14.10.2017
Размер файла 113,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство высшего образования Российской Федерации

Санкт-Петербургский государственный технологический институт

(технический университет)

Кафедра САПРиУ

Пояснительная записка

к курсовому проекту на тему:

«Разработка программ преобразования форматов двоичных данных и сортировок в машинных кодах микро-ЭВМ СМ-1800 с помощью эмулятора на ПК»

Выполнил: студент гр.№843 -

Мубаракшин Ильдар Ахтямович

Руководитель: Гиляров Владимир Николаевич

Санкт-Петербург

2005

Содержание

Введение

1. Аналитическая часть

1.1 Двоично-десятичное кодирование

1.2 Арифметические действия над двоично-десятичными (ДД) кодами

1.3 Стандарты кодирования текстов

2. Практическая разработка

2.1 Описание алгоритма программы

2.2 Листинг программы

3 Описание использованных при проектировании средств вычислительной техники

Вывод

Литература

Введение

Задачей данного курсового проекта ставится разработка алгоритма и его программная реализация на Эмуляторе микро-ЭВМ СМ-1800.

Необходимо, пользуясь программой-монитором, занести в память ЭВМ, начиная с адреса следующий массив из восьмиразрядных констант:

Адрес16

Константа16

Адрес16

Константа16

5000

5001

5002

5003

5004

85

00

8D

07

80

5005

5006

5007

5008

5009

22

D4

A9

FF

A0

Будем рассматривать эти коды как массив однобайтных целых положительных чисел со знаком.

Составить программу, которая выбирает из исходного массива (с адреса 500016) положительные числа и преобразует их в массив кодов КОИ-7 шестнадцатеричных цифр, записывая результат с адреса 600016 (600016 символ старшей шестнадцатеричной цифры 1-го числа, 600116 - символ младшей шестнадцатеричной цифры 1-го числа и т.д.).

Программу располагать в памяти с ячейки 400016.

1. Аналитическая часть

1.1 Двоично-десятичное кодирование

Поскольку человеку наиболее привычна арифметика в десятичной системе счисления, а для компьютера - двоичная арифметика, была введена компромиссная система двоично-десятичной записи чисел. Такая система чаще всего применяется там, где существует необходимость частого использования процедуры десятичного ввода-вывода. (электронные часы, калькуляторы и т.д.). В таких устройствах не всегда целесообразно предусматривать универсальный микрокод перевода двоичных чисел в десятичные и обратно по причине небольшого объема программной памяти.

Принцип построения этой системы достаточно прост: каждая десятичная цифра преобразуется прямо в свой десятичный эквивалент из 4 бит, например: 250610=0010 0101 0000 0110DEC:

Десятичное число

2

8

0

6

Двоично-десятичное число

0010

1000

0000

0110

Преобразуем двоично-десятичное число 0111 0010 0001 1000 в его десятичный эквивалент.

Каждая группа из 4 бит преобразуется в её десятичный эквивалент.

Получим 0111 0010 0001 1000DEC = 721810:

Двоично-десятичное число

0111

0011

0001

0101

Десятичное число

7

3

1

5

Микропроцессоры используют чистые двоичные числа, однако понимают и команды преобразования в двоично-десятичную запись. Полученные двоично-десятичные числа легко представимы в десятичной записи, более понятной людям.

1.2 Арифметические действия над двоично-десятичными (ДД) кодами

? Команда:

ADD B

? Назначение:

<A>+<B><A>

? Описание:

Сложение содержимого регистра B с аккумулятором

? Команда:

ADD M

? Назначение:

<A>+<M><A>

? Описание:

Сложение содержимого ячейки памяти с аккумулятором

? Команда:

ADI (B2)

? Назначение:

<A>+<B2><A>

? Описание:

Сложение непосредственных данных (B2) с аккумулятором

? Команда:

ADC B

? Назначение:

<A>+<B>+<CY><A>

? Описание:

Сложение содержимого регистра B с аккумулятором

? Команда:

ACI (B2)

? Назначение:

<A>+<B2>+<CY><A>

? Описание:

Сложение содержимого ячейки памяти с аккумулятором

? Команда:

DAD B

? Назначение:

<BC>+<HL><HL>

? Описание:

Сложение <B,C> с <H,L> (в качестве аккумулятора используется пара <H,L>)

? Команда:

DAD H

? Назначение:

<HL>*2<HL>

? Описание:

Удвоение значения в <H,L>

? Команда:

SUB B

? Назначение:

<A>-<B><A>

? Описание:

Вычитание из аккумулятора содержимого регистра <B>

? Команда:

SUB M

? Назначение:

<A>-<M><A>

? Описание:

Вычитание из аккумулятора содержимого ячейки памяти

1.3 Стандарты кодирования текстов

С целью стандартизации в компьютерах используется американский национальный стандартный код для обмена информацией ASCII (American National Standard Code for Information). Наличие стандартного кода облегчает обмен данными между различными устройствами. Восьмибитовый расширенный ASCII-код обеспечивает представление 256 символов, включая символы для национальных алфавитов.

Системы кодирования текстовых данных были разработаны и в других странах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (код обмена информацией, семизначный). Однако поддержка производителей оборудования и программ вывела американский код ASCII на уровень международного стандарта, и национальным системам кодирования пришлось "отступить" во вторую, расширенную часть системы кодирования, определяющую значения кодов со 128 до 255. Отсутствие единого стандарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устаревших.Так, например, кодировка символов русского языка, известная как кодировка Windows-1251, была введена "извне" - компанией Microsoft, но учитывая широкое распространение операционных систем и других продуктов этой компании в России она нашла широкое распространение в России. Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.

Другая распространенная кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) - ее происхождение относится ко времени действий Совета Экономической Взаимопомощи государств Восточной Европы. Сегодня кодировка КОИ-8 имеет широкое распространение в компьютерных сетях на территории России и в российском секторе Интернета.

Международный стандарт, в котором предусмотрена кодировка символов русского алфавита, носит название ISO (International Standard Organization - Международный институт стандартизации). На практике данная кодировка используется редко.

На компьютерах, работающих под операционной системой MS-DOS, могут действовать еще две кодировки (кодировка ГОСТ и кодировка ГОСТ альтернативная). Первая из них считалась устаревшей даже в первые годы появления персональной вычислительной техники, но вторая используется и по сей день.

В связи с возникшими неудобствами было принято решение на консорциуме фирм создать кодовую таблицу, где будет не только сам символ, но и инструкция по его воспроизведению. Такая таблица получила название Unicode.

Сложение. Данная операция выполняется в два этапа: сложение и коррекция. После сложения в тетрадах может оказаться недопустимая комбинация или может возникнуть перенос. Алгоритм коррекции состоит из двух шагов:

1) Если AC = 1 или младшая тетрада меньше 15, но больше 9, то к ней прибавляется код 6. Возникающий перенос прибавляется к старшей тетраде;

2) Если C = 1 или старшая тетрада содержит недопустимую комбинацию, то к результирующему байту прибавляется код 60h.

Примеры сложения ДД-чисел представлены ниже:

2. Практическая разработка

2.1 Описание алгоритма программы

Как известно, цифра, закодированная при помощи кода КОИ-7, отличается от незакодированной на число 30, а буквенное обозначение шестнадцатеричного числа - на 3716. Исходя из этой информации, принцип работы данной программы заключается в том, что константы из массива, начинающегося с адреса 500016, по очереди копируются в аккумулятор и над каждой из них осуществляются следующие действия: данное двузначное число подвергается четырём сдвигам вправо с помощью команды “RAR”, в результате чего его символы “меняются местами”. Это нужно, чтобы закодировать первый символ. Затем обнуляется первый символ результата путём применения команды “ANI 0F”. С помощью команды “CPI 0A” определяется, цифра или буква стоит на второй позиции.

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

После того, как первая константа закодирована, получившееся в результате двухбайтное число заносится из аккумулятора в массив, начинающийся с адреса 600016.

Затем все действия повторяются применительно к каждой заданной константе в цикле.

В программе используется цикл на убывание. В паре <HL> создаётся счётчик на десять шагов, так как требуется закодировать десять констант.

2.2 Листинг программы

Адрес

Текст

ассемблера

Коды

ассемблера

Комментарии

4000

LXI B, 500016

01 00 50

Загрузка начала исходного массива

4003

LXI D, 600016

11 00 60

Загрузка начала массива кодов КОИ-7

4006

MVI H, 0Ah

26 0A

Создание счётчика в регистре H на 10 шагов

4008

JP 500016

F2 00 50

Выбор положительного числа

400B

LDAX B

0A

Запись первого числа в аккумулятор

400C

RAR

1F

Сдвиг вправо

400D

RAR

1F

Сдвиг вправо

400E

RAR

1F

Сдвиг вправо

400F

RAR

1F

Сдвиг вправо

4010

ANI 0Fh

E6 0F

Обнуление первой тетрады числа

4012

CPI 0Ah

FE 0A

Сравнение результата с 0Аh

4014

JP 401E16

F2 1E 40

Если это буква, прыжок к адресу 401E

4017

ADI 30h

C6 30

Сложение результата с константой 30h

4019

JMP 402116

C3 20 40

Прыжок к адресу 4020

401C

ADI 37h

C6 37

Сложение результата с константой 37h

401E

STAX D

12

Запись получившегося числа в массив кодов КОИ-7

401F

INX D

13

Переход к следующей ячейке массива кодов КОИ-7

4020

LDAX B

0A

Запись первого числа в аккумулятор

4021

ANI 0Fh

E6 0F

Обнуление первой тетрады числа

4023

CPI 0Ah

FE 0A

Сравнение результата с 0Аh

4025

JNC 403016

D2 2F 89213647048 40

Если это буква, прыжок к адресу 402F

4028

ADI 30h

C6 30

Сложение результата с константой 30h

402A

JMP 403216

C3 32 40

Прыжок к адресу 4032

402D

ADI 37h

C6 37

Сложение результата с константой 37h

402F

STAX D

12

Запись получившегося числа в массив кодов КОИ-7

4030

INX D

13

Переход к следующей ячейке массива кодов КОИ-7

4031

INX B

03

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

4032

DCR H

25

Уменьшение счётчика на 01h

4033

JP 400816

F2 08 40

Прыжок к началу цикла, если в счётчике не 00h

4036

JMP 004016

C3 40 00

Выход в монитор

3 Описание использованных при проектировании средств вычислительной техники

При выполнении данного курсового проекта и составлении пояснительной записки к нему были задействованы средства компьютера с основными характеристиками: процессор Intel Celeron M processor 370 (1.5 GHz, 400 MHz FSB, 1MB L2 cache). 256MB DDR2, 40GB HDD. Вся разработка проводилась в системной оболочке Microsoft Windows XP.

Составление непосредственно программы курсового проекта проходило, как упоминалось ранее, на эмуляторе СМ-1800, разработанного Смирновым А.С. Помимо вычислительных средств, к которым мне пришлось прибегнуть (калькулятор), в работе были использованы средства Microsoft Office, а именно, Microsoft Word, в котором полностью оформлялась данная пояснительная записка.

алгоритм кодирование текст эмулятор

Вывод

В результате проделанной работы поставленная цель была достигнута. При помощи стандартных команд ассемблера была создана программа, переводящая заданный массив однобайтных констант в массив кодов КОИ-7. Без сомнения существуют более рациональные алгоритмы реализации данной задачи, использующие, может быть, короткие команды, или более сжато осуществляющие цикл. Можно предположить, что в моей программной реализации задачи вторую часть цикла (кодирование второго символа данной константы) можно было соединить с первой (кодирование первого символа константы), поскольку единственным их различием являются сдвиги в первой части.

Литература

1. Ю. М. Казаринова «Микро - процессорный комплект К1810» Справочник Москва 1990г.

2. «Микропроцессоры: Архитектура и проектирование микро ЭВМ. Организация вычислительных процессов.» 1,2,3 том Москва «Высшая школа» 1986г.

3. Л.Н. Знаменская, С.В. Знаменский. Проблема множественности русских кодировок и новое семейство кириллических шрифтов. ( Электронная версия книги)

4. Также использовались методические пособия к лабораторным работам по дисциплине «Организация ЭВМ и систем» и конспекты лекций по тому же предмету.

5. Интернет сайт www.lib.ru

Размещено на Allbest.ru

...

Подобные документы

  • Анализ двоичной, восьмеричной и шестнадцатеричной систем счисления и перевода десятичных чисел. Форматы хранения чисел с плавающей точкой. Программа для преобразования массива констант в формат числа с плавающей точкой на эмуляторе микро-ЭВМ СМ-1800.

    курсовая работа [266,9 K], добавлен 24.12.2013

  • Двоичная, восьмеричная и шестнадцатеричная системы счисления и перевод из одной в другую. Форматы хранения чисел с плавающей точкой. Позиционная система счисления. Подпрограмма вывода служебных слов и полученных данных. Альтернативные варианты решения.

    курсовая работа [920,9 K], добавлен 13.07.2014

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

    курсовая работа [981,4 K], добавлен 27.05.2013

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

    курсовая работа [119,1 K], добавлен 24.06.2012

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

    курсовая работа [223,8 K], добавлен 21.02.2012

  • Проектирование микро-ЭВМ. Программа вычисления матрицы. Кодирование программ и регистров, формат команды. Микропрограммное устройство управления. Граф-схемы выполнения операций. Прошивка ПЗУ микрокоманд, точек входа. Разработка принципиальной схемы.

    курсовая работа [1,1 M], добавлен 01.03.2013

  • Разработка блок-схемы и программы обработки одномерного массива с доступом к элементам с помощью индексов и с помощью указателей. Словесное описание алгоритма и пользовательского интерфейса, листинг программы обработки матрицы и результат её выполнения.

    курсовая работа [391,1 K], добавлен 30.09.2013

  • Порядок и основные этапы построения двоичных неравномерных эффективных кодов с помощью методики Хаффмена. Сравнительная характеристика полученных кодов. Кодирование текста построенными кодами. Разработка марковских процедур для кодирования слов.

    лабораторная работа [520,7 K], добавлен 29.09.2011

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

    курсовая работа [408,8 K], добавлен 22.10.2012

  • Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.

    курсовая работа [357,1 K], добавлен 28.02.2011

  • Понятие двоично-десятичного кода (ДДК), его получение и использование. Изучение арифметико-логических устройств, использующихся для обработки ДДК. Алгоритмы сложения, вычитания, умножения и деления ДДК при помощи арифметико-логических устройств.

    контрольная работа [145,5 K], добавлен 05.09.2010

  • Разработка программы, решающей базовую задачу линейного программирования симплекс-методом с помощью симплекс-таблиц. Целевая функция с определенным направлением экстремума и система ограничений для нее. Разработка алгоритма программы, ее листинг.

    курсовая работа [385,6 K], добавлен 15.05.2014

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

    курсовая работа [3,6 M], добавлен 17.02.2013

  • Особенности работы микро ЭВМ, которая сопровождается интенсивным обменом информацией между МП, ЗУ и УВВ. Характеристика функций интерфейса: дешифрация адреса устройств, синхронизация обмена информацией, согласование форматов слов, дешифрация кода команды.

    контрольная работа [183,1 K], добавлен 22.08.2010

  • Возможности программы DBDesigner. Проектирование и реализация информационно-поисковой системы с помощью CASE-средства DBDesigner в среде Intranet. Этапы проектирования базы данных, установление соединения с базой данных на сервере, синхронизация.

    лабораторная работа [1,5 M], добавлен 18.08.2009

  • Переменные типа integer, real, их функции. Общее понятие о массиве, файлы для Pascal. Информационный и информанизационный набор списка. Реализация и тестирование программы. Выбор базы данных, внесение имени, меню. Блок-схема алгоритма, листинг программы.

    курсовая работа [306,0 K], добавлен 04.02.2013

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

    контрольная работа [360,4 K], добавлен 13.06.2012

  • Разработка приложения для шифрования данных с помощью алгоритма DES5: процесс шифрования, расшифрования, получение ключей. Спецификация программы, процедуры и функции; описание интерфейса пользователя. Реализация задачи в среде программирования DELPHI.

    курсовая работа [812,6 K], добавлен 27.03.2012

  • Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.

    курсовая работа [990,9 K], добавлен 15.06.2009

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

    презентация [3,5 M], добавлен 19.05.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.