Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Модуль программируемого таймера (минимальный фиксируемый интервал — 1 МГц) Модуль системного контроля, Модуль оперативной памяти 64Кб (МОЗ), Модуль теневой оперативной памяти 3Кб + системное ПЗУ 2Кб, Порты ввода 00h, 01h, и другие, Порты вывода 00h, 01h, 03h, и другие, Система обработки приоритетных прерываний, В ПЗУ СМ-1800 зашита операционная система СПО МОНИТОР 1.3 (MONID 1.3). Программный… Читать ещё >

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

  • Введение
  • 1. Аналитическая часть
  • 1.1 Представление целых чисел в формате с фиксированной запятой
  • 2. Практическая разработка
  • 2.1 Блок-схема алгоритма с поясняющим текстом
  • 2.2 Распределение памяти и листинг программы с комментарием
  • 3. Описание средств вычислительной техники
  • Вывод
  • Список литературы

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

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

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

1.1 Представление целых чисел в формате с фиксированной запятой

Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера ячеек памяти, используемых для их хранения.

Так в n-разрядной ячейке может храниться 2n различных значений целых чисел. Так в 8-разрядной ячейке может храниться 28=256 различных значений, в 16-разрядной — 216=65 536 различных значений.

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

Целые числа без знака. Обычно занимают в памяти компьютера один или два байта. Максимальное значение целого числа без знака (положительного числа) достигается в случае, когда во всех ячейках хранятся единицы.

Для n-разрядного представления оно будет равно. Для 8-разрядной ячейки максимальное значение целого положительного числа достигается в случае, когда во всех ячейках хранятся единицы и равно. Минимальное число соответствует восьми нулям, хранящимся в восьми битах ячейки памяти, и равно нулю. Следовательно, в 8-разрядной ячейке диапазон изменения целых чисел без знака: от 0 до 255. В 16-разрядной ячейке — от 0 до 65 535 (всего 65 536 значений).

Так, число 11 100 0012 будет храниться в 8-разрядной ячейке памяти следующим образом:

В 16-разрядном представлении число 200610=11 111 010 1102 будет храниться следующим образом:

Итак, чтобы получить внутреннее представление целого числа без знака А, хранящегося в n-разрядном машинном слове, необходимо:

1) перевести число, А в двоичную систему счисления;

2) полученный результат дополнить слева незначащими нулями до n разрядов.

Целые числа со знаком: прямой, обратный и дополнительный коды. Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта. Для хранения целых чисел со знаком старший (левый) разряд в машинном слове отводится под знак числа (если число положительное, то в знаковый разряд записывается ноль, если число отрицательное — единица). Ровно половина из всех 2n чисел будут отрицательными; учитывая необходимость нулевого значения, положительных будет на единицу меньше.

Максимальное положительное число (с учетом выделения одного разряда на знак) для целых чисел со знаком в n-разрядном представлении равно. Минимальное отрицательное число (с учетом выделения одного разряда на знак) для целых чисел со знаком в n-разрядном представлении равно — .

Диапазоны значений целых чисел со знаком:

в 8-разрядной ячейке: от — 128 до 127;

в 16-разрядной ячейке: от — 32 768 до 32 767;

в 32-разрядной ячейке: от — 2 147 483 648 до 2 147 483 647.

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

Прямой код целого положительного числа может быть получен следующим образом: число переводится в двоичную систему счисления, а затем его двоичную запись слева дополняют необходимым количеством нулей в соответствии с разрядностью машинного слова. Например, прямой код числа 3710=100 1012 в 16-разрядной ячейке будет иметь вид 100 101.

Для записи внутреннего представления целого число со знаком (-А) необходимо:

1) модуль числа записать в прямом коде в n двоичных разрядах;

2) получить обратный код числа, для этого значения всех бит инвертировать — все единицы заменить на нули и все нули заменить на единицы);

3) к полученному обратному коду прибавить единицу. Получим дополнительный код целого числа со знаком.

Например, внутреннее представление целого отрицательного числа — 1607 в 16-разрядной ячейке запишется следующим образом: 1111 1001 1011 1001. Так как:

1) а) Ѕ-1607Ѕ=160710=11 001 000 1112

б) прямой код в 16-разрядной ячейке:

0000 0110 0100 0111

2) обратный код:

1111 1001 1011 1000

3) дополнительный код (результат прибавления 1):

1111 1001 1011 1001 — это внутренне двоичное представление числа (-1607).

эмулятор массив плавающая точка

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

2.1 Блок-схема алгоритма с поясняющим текстом

2.2 Распределение памяти и листинг программы с комментарием

SP-двухбайтный регистр стека

H, L — пара регистров, занятых массивом исходных чисел

D, E — пара регистров, занятых результирующего массива.

В, С — пара регистров, используемых для хранения временных данных

С — регистр, используемый как счетчик

адрес

данные

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

Комментарии

31 00 80

LXI SP, 8000h

Создание стека программы по адресу 8000h

21 05 50

LXI H, 5001h

Помещение в пару H, L адреса исходного массива

11 01 70

LXI D, 7001h

Помещение в пару D, E адреса массива результатов

01 00 60

LXI B, 6000h

Помещение в пару В, С ячейку памяти 6000h

400C

AF

XRA A

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

400D

STAX B

Запись содержимого в ячейку памяти 6000h

400E

0E 0A

MVI C, 0Ah

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

C5

M1: PUSH B

Засылка содержимого регистров В, С в стек

7E

MOV A, M

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

RAL

Циклический сдвиг содержимого аккумулятора влево на один разряд

DA 50 40

JC OTR

Если число отрицательное (CY=1), то прыгнуть на метку OTR

7E

MOV A, M

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

STAX D

Запись в массив результатов старшего байта числа

2B

DCX H

Переход к младшему байту числа в исходном массиве

1B

DCX D

Переход к младшему байту числа в массиве результатов

401A

7E

MOV A, M

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

401B

STAX D

Запись в массив результатов младшего байта числа

401C

INX H

С адреса 401С по 4021 — продвижение адресов на следующую пару чисел в исходном массиве и в массиве результатов

401D

INX D

401E

M2: INX H

401F

INX D

INX H

INX D

C1

POP B

Извлечение содержимого В, С из стека

0D

DCR C

Уменьшение счетчика на 1

C2 10 40

JNZ M1

Возврат на М1 до исчерпания счетчика

CD 80 40

CALL PODS

Вызов подпрограммы PODS

402A

CD 49 00

CALL 49h

Перевод курсора на новую строку

402D

CD 90 40

CALL VISX

Вызов программы VISX

CD 49 00

CALL 49 h

Перевод курсора на новую строку

CD B0 40

CALL VREZ

Вызов подпрограммы VREZ

C3 40 00

JMP 40h

Выход в программу Монитор

Подпрограмма обработки отрицательных чисел

0A

PODS: LDAX B

Загрузка в аккумулятор содержимого ячейки 6000h

01 20 41

LXI B, 4120h

Помещение в пару регистров В, С адреса 4120h

CD 4C 00

CALL 4Ch

Вывод строки текста, начиная с адреса, записанного в В, С до нулевого байта

CD 61 00

CALL 61h

Вывод двух шестнадцатеричных цифр и аккумулятора

408A

C9

RET

Безусловный возврат к команде, с адресом 402А

Подпрограмма вывода на экран исходного массива

11 14 00

VISX: LXI D, 0014h

Создание счетчика на 20 шагов

21 00 50

LXI H, 5000h

Помещение в пару H, L адреса исходного массива

01 20 42

LXI B, 4220h

Помещение в пару регистров В, С адреса 4220h

CD 4C 00

CALL 4Ch

Вывод строки текста, начиная с адреса, записанного в В, С до нулевого байта

409С

01 20 43

LXI B, 4320h

Помещение в пару регистров В, С адреса 4320h

409F

7E

MOV A, M

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

40A0

CD 61 00

CALL 61h

Вывод двух шестнадцатеричных цифр и аккумулятора

40A3

INX H

Продвижение адреса на следующую пару чисел

40A4

CD 4C 00

CALL 4Ch

Вывод строки текста, начиная с адреса, записанного в В, С до нулевого байта

40A7

1D

DCR E

Уменьшение счетчика на 1

40A8

C2 9 °F 40

JNZ 409F

Возврат в 409 °F до исчерпания счетчика

40AB

C9

RET

Безусловный возврат к команде, адресом 4030

Подпрограмма вывода на экран массива результатов

40B0

11 14 00

VREZ: LXI D, 0014h

Создание счетчика на 20 шагов

40B3

21 00 70

LXI H, 7000h

Помещение в пару H, L адреса массива результатов

40B6

01 20 44

LXI B, 4420h

Помещение в пару регистров В, С адреса 4420h

40B9

CD 4C 00

CALL 4Ch

Вывод строки текста, начиная с адреса, записанного в В, С до нулевого байта

40BC

01 20 43

LXI B, 4320h

Помещение в пару регистров В, С адреса 4320h

40BF

7E

MOV A, M

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

40C0

CD 61 00

CALL 61h

Вывод двух шестнадцатеричных цифр и аккумулятора

40C3

INX H

Продвижение адреса на следующую пару чисел

40C4

CD 4C 00

CALL 4Ch

Вывод строки текста, начиная с адреса, записанного в В, С до нулевого байта

40C7

1D

DCR E

Уменьшение счетчика на 1

40C8

C2 BF 40

JNZ 40BF

Возврат в 40BF до исчерпания счетчика

40CB

C9

RET

Безусловный возврат к команде, с адресом 4036

Результаты тестирования программы

При запуске программы, на экране Монитора выводятся следующие данные:

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

Программный продукт «Эмулятор СМ-1800» позволяет полностью эмулировать работу микроЭВМ СМ-1800 на персональном компьютере. Сразу после запуска на экране появляются четыре основных окна: видеотерминал алфавитно-цифровой (ВТА 2000;30), пульт контроля и управления (ПКУ), клавиатура и главное меню. При необходимости можно не отображать ненужные окна.

Центральный процессор и шины СМ-1800 работают на частоте 2 МГц.

ЦП имеет 8 внутренних 8-битных регистров, понимает около 250 различных команд, может адресовать 65 536 байт оперативной памяти и 256 портов ввода-вывода, имеет 8-уровневую систему приоритетных прерываний.

К внешней шине подключены устройства: дисковод (8 дюймов, ёмкость дискеты 160 Кб:), печатающее устройство (на бесконечной бумаге), и другие.

Вся информация выводится на видеотерминал ВТА в текстовом виде (чёрно-зелёный шрифт, 127 знаков, размер экрана 80×24 символа).

Терминал «общается» с системой через интерфейс И41 (7-битный).

Основной орган управления — стандартная клавиатура СМ-1800 — имеет несколько режимов работы, поддерживает 2 кодировки (JCUKEN/ЙЦУКЕН).

Еще один орган управления — это выносной пульт ПКУ с элементами коммутации и индикации. Он позволяет выполнять ЛЮБЫЕ операции с памятью, портами ввода-вывода, позволяет управлять работой центрального процессора (останавливать, трассировать шины адреса и данных, выполнять машинные инструкции с остановами между циклами ЦП, и т. д.).

Все остальные модули скрыты внутри системного блока СМ-1800 и доступны программно, а именно:

Модуль программируемого таймера (минимальный фиксируемый интервал — 1 МГц) Модуль системного контроля, Модуль оперативной памяти 64Кб (МОЗ), Модуль теневой оперативной памяти 3Кб + системное ПЗУ 2Кб, Порты ввода 00h, 01h, и другие, Порты вывода 00h, 01h, 03h, и другие, Система обработки приоритетных прерываний, В ПЗУ СМ-1800 зашита операционная система СПО МОНИТОР 1.3 (MONID 1.3).

Именно она получает управление после запуска СМ-1800.

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

Тип процессора:

Intel® Core™ I3CPU M370 @ 2.4GHZ

Скорость процессора:

2,02 ГГЦ

Объем оперативной памяти:

8 ГБ

Видеокарта:

NVidia GeForce GT 415M

Память видеокарты:

1 ГБ

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

Операционная система:

Windows 2.6.2.9200 (Windows 8.1)

Microsoft Office 2013

Практическая разработка данного курсового проекта выполнялась на эмуляторе микро-ЭВМ СМ-1800 v3.02.

Вывод

Данный курсовой проект выполнен полностью в соответствии с заданием. Проект состоит из двух основных частей: аналитической и практической. Обе части были подробно рассмотрены. Все поставленные задачи были полностью разобраны и реализованы. Была составлена программа формирования массива модулей чисел исходного массива (с адреса 5000h), формирующая массив результатов с адреса 7000h. Так же было подсчитано количество отрицательных чисел в исходном массиве, результат которого записан в ячейки 4000h.

1. Гиляров В. Н. Организация ЭВМ и систем. Курсовое проектирование: методические указания к выполнению курсового проектирования / В.Н. Гиляров-СПб.: СПбГИ (ТУ), 2010. — 76 с.

2. Гиляров В. Н. Организация ЭВМ и систем: учебное пособие / В.Н. Гиляров-СПб.: СПбГИ (ТУ), 2010. — 80 с.

3. Информационно-поисковые системы Интернет: Yandex, Rambler.

4. Лекции по дисциплине «Организация ЭВМ и систем» .

5. МикроЭВМ СМ-1800 и ее эмулятор на ПК: Методические указания. — СПб.: СПбГТИ (ТУ), 2006. — 21с.

Показать весь текст
Заполнить форму текущей работой