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

Автор работы: Пользователь скрыл имя, 24 Мая 2015 в 19:11, курсовая работа

Описание работы

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

Содержание работы

Введение……………………………………………………………...7
1 Аналитическая часть………………………………..……………..8
1.1 Двоично-десятичное кодирование………………………....8
1.2 Арифметические действия над ДД-кодами…………….....9
1.3 Стандарты кодировки текстов……………………………..13
2 Описание программы-эмулятора…………………………………18
3. Практическая разработка………………………………………..21
3.1 Описание алгоритма…………………………………….....21
3.2 Листинг программы………………………………………..23
3.3 Блок схема………………………………………………….25
4.Описание использованных средств вычислительной техники..28
Вывод………………………………………………………………………….29
Список использованной литературы………………………………………..31

Файлы: 1 файл

Курсовик ОЭВМ.docx

— 61.66 Кб (Скачать файл)

 

Обоснование выбора.

Для выполнения данного курсового проекта были предложены два различных эмулятора ЭВМ СМ-1800, разработанные студентами СПбГТИ (ТУ). В ходе сравнения по ряду причин был выбран эмулятор Смирнова.

  1. Во-первых, данная программа совместима с ОС Windows XP. Эмулятор Смирнова работает под эту ОС ничуть не хуже, чем Windows 98. А работа эмулятора Дёмина-Пушкина нарушается:ASCII коды русских символов отображаются в виде неопознанных знаков «?».
  2. Во-вторых данный эмулятор более близок к реальной ЭВМ СМ-1800 по внешнему виду, имеет более удобные клавиши: (все буквенно-цифровые клавиши IBM-клавиатуры соответствуют стандартной раскладке QWERTY-ЙЦУКЕН, для клавиатуры СМ-1800 продублированы полностью) и привычную строку меню. Это придает простоту при работе с ним и позволяет прочувствовать работу с настоящей ЭВМ СМ-1800.
  3. В-третьих эмулятор Смирнова позволяет одновременно видеть ВТА, ПКУ и клавиатуру, а это облегчает процесс обращения к данным эмулирующим частям и экономит время , которое могло бы затрачиваться на смены вкладок.

 

 

 

 

 

 

 

 

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

3.1 Описание  алгоритма решения задачи.

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

Распределение памяти:

L-счетчик цикла

В,С - адрес текущей исходной однобайтной константой

D,E – адрес текущей ячейки памяти результирующего массива

H,L – для хранения промежуточных результатов

Инициализация:

  • 1.1    Создание стека по адресу 700016

 

  • 1.2    Загрузка в ВС константы 500016

 

1.3    Загрузка  в DE константы 600016

1.4    Создание  счетчика 

1.5    Обнуление  аккумулятора

Обработка  первой восьмиразрядной константы:

2.1     Загрузка  в аккумулятор старшей однобайтной  константы

2.2 Получение старшей  тетрады числа в младшей тетраде      аккумулятора

2.3      Записать ВС в стек

2.4      Сохранение аккумулятора в В

2.5      Сохранение счетчика №2 в С

2.6      Сложить аккумулятор с В

2.7      Декремент счетчика

2.8      Если счетчик 0 не переходит к  пункту 2.6

2.9      Восстановление ВС

2.10      Сохранение аккумулятора в Н

2.11      Инкремент ВС (теперь указывает  на вторую однобайтную константу)

Обработка второй восьмиразрядной константы:

3.1        Загрузка в аккумулятор старшей  однобайтной константы

3.2   Получение  младшей  тетрады числа в младшей  тетраде      аккумулятора

Получение результата:

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

4.2        Запись аккумулятора по адресу, хранящемуся в DE

Заключительная часть:

5.1        Инкремент ВС

5.2        Инкремент DE

5.3        Декремент счетчика

5.4        Если счетчик не 0 переход к  этапу 2.1

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

 

 

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

 

Адрес

16 ричный

код

Код ассемблера

Комментарий

4000

01 14 50

LXI B 5014 h

Загрузка в пару ВС непосредственные данные 5014 (следующий адрес после последнего байта массива шестнадцатиразрядных констант)

4003

11 0A 60

LXI D 600Ah

Загрузка в пару DE непосредственные данные (следующий адрес после последнего байта результирующего массива двоичных чисел без знака)

4006

1B

DCR E

Декремент Е, т.е. Е=Е-1 (уменьшение адреса)

4007

0B

DCX B

Декремент ВС (уменьшение адреса)

4008

0A

LDAX B

Загрузить А из ячейки с адресом ВС (младший байт константы из массива шестнадцатиразрядных констант)

4009

DE 30

SUI 30h

А=А-30 (для перевода к двоичным числам)

400B

6F

MOV L A

Переслать из А в L

400C

0B

DCX B

Декремент ВС (уменьшение адреса)

400D

0A

LDAX B

Загрузить А из ячейки с адресом ВС (старший байт константы из массива шестнадцатиразрядных констант)

400E

DE30

SUI 30h

А=А-30 (для перехода к двоичным числам)

4010

67

MOV H A

Переслать из А в Н

4011

C5

PUSH B

Записать в стек пару регистров ВС

4012

7C

MOV A H

Переслать из Н в А

4013

0E 09

MVI C 09h

Записать в С данные 09h (организация счетчика не основного цикла)

4015

06 00

MVI B 00h

Записать в В данные 09h (организация счетчика не основного цикла)

4017

84

ADD H

Сложить А с Н (по циклу выедет 10 раз)

4018

0D

DCR C

С-С-1 (шаг счетчика на вычитание)

4019

C2 17 40

JNZ 4017h

Перейти по адресу  4017 если Z=0

401C

85

ADD L

А=А+L (получили искомое двоичное число

401D

C1

POP B

Загрузить из стека пару регистров ВС

401E

12

STAX D

Записать А по адресу DE (запись результата)

401F

13

INX D

Инкрементировать DE

4020

7B

MOV A E

Переслать из Е в А(для организации цикла)

4021

3D

DCR A

Декрементировать А

4022

5F

MOV E A

Переслать из А в Е(для организации цикла)

4023

C2 06 04

JNZ 4006h

Перейти по адресу 4006 если Z=0 (цикл закончится ,в А будут нули, а это будет когда все шестнадцатиразрядные константы будут переведены в двоичные числа без знака)

4026

C3 40 00

JMP 0040h

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


 

 

 

 

 

 

 

3.3 Блок-схема




 



 



 





 


 




 

 

 


 







 Нет


 

 



 



 

 


 


 

 


 


 Нет ДА



 

 





 



 

Да Нет


 

 


 




 



 






 







 

ДА Нет










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

 

Характеристика оборудования:

 

Компьютер AMD AthlonXP 2500+(16000MHz), 256 Mb RAM,

GeForce 6600 VGA card, 512 Mb видеопамяти, монитор с разрешением 1280х1024, стандартная клавиатура, мышь.

 

Стандартное программное обеспечение:

Microsoft Windows XP.

Средства редактирования документов:

 

Microsoft Office

 

 

 

 

 

 

 

 

 

 

 

Вывод.

 

Курсовой проект полностью выполнен.

Проделанная курсовая работа позволила не только разобраться с двоично-десятичным кодированием и кодами КОИ-7, но и дала отличные навыки владения эмулятором СМ-1800, а как следствие и самой микро-ЭВМ СМ.

Так же было получено много информации о процессоре КР580ИК80А и о машинных и ассемблерных командах для этого процессора. Знание машин на машинном уровне – знание, которое необходимо иметь каждому программисту. Ассемблерные программы могут быть очень эффективными. Из программистов, с равными навыками и способностями, работающий на языке ассемблера создаст программу более компактную и быстродействующую, чем такая же программа, написанная на языке высокого уровня.

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

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

 

 

 

 

Адрес 16

Константа 10

6000

26

6001

61

6002

6003

00

6004

2D

6005

1E

6006

0E

6007

63

6008

07

6009

3C


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы:

 

1)Гиляров  В.Н. Стандартное программное обеспечение. Монитор. Методические указания  – СПб ГТИ (ТУ)

2005 г. Стр. 22.

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

 

 

 


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