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

 

Оглавление


Введение

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

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

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

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

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

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

Вывод

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

Введение


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

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

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


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


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

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

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

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

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

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


11100001

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


0000011111010110

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

) а) ½-1607½=160710=110010001112

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

0110 0100 0111

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

1001 1011 1000

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

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

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

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


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




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


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

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

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

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

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


адресданныеКод ассемблераКомментарии400031 00 80LXI SP, 8000hСоздание стека программы по адресу 8000h400321 05 50LXI H, 5001hПомещение в пару H,L адреса исходного массива400611 01 70LXI D, 7001hПомещение в пару D,E адреса массива результатов400901 00 60LXI B, 6000hПомещение в пару В, С ячейку памяти 6000h400CAFXRA AОбнуление аккумулятора400D02STAX BЗапись содержимого в ячейку памяти 6000h400E 0E 0AMVI C,0AhСоздание счетчика на 10 шагов4010C5M1: PUSH BЗасылка содержимого регистров В, С в стек40117EMOV A,MКопирование содержимого регистров в аккумулятор401217RALЦиклический сдвиг содержимого аккумулятора влево на один разряд4013DA 50 40JC OTRЕсли число отрицательное (CY=1), то прыгнуть на метку OTR40167EMOV A,MКопирование содержимого ячейки памяти в аккумулятор401712STAX DЗапись в массив результатов старшего байта числа40182BDCX HПереход к младшему байту числа в исходном массиве40191BDCX DПереход к младшему байту числа в массиве результатов401A7EMOV A,MКопирование содержимого ячейки памяти в аккумулятор401B12STAX DЗапись в массив результатов младшего байта числа401C23INX HС адреса 401С по 4021 - продвижение адресов на следующую пару чисел в исходном массиве и в массиве результатов401D13INX D401E23M2: INX H401F13INX D402023INX H402113INX D4022C1POP BИзвлечение содержимого В, С из стека40230DDCR CУменьшение счетчика на 14024C2 10 40JNZ M1Возврат на М1 до исчерпания счетчика4027CD 80 40CALL PODSВызов подпрограммы PODS402ACD 49 00CALL 49hПеревод курсора на новую строку402DCD 90 40CALL VISXВызов программы VISX4030CD 49 00CALL 49 hПеревод курсора на новую строку4033CD B0 40 CALL VREZВызов подпрограммы VREZ4036C3 40 00JMP 40hВыход в программу Монитор

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

40800APODS: LDAX BЗагрузка в аккумулятор содержимого ячейки 6000h408101 20 41LXI B,4120hПомещение в пару регистров В, С адреса 4120h4084CD 4C 00CALL 4ChВывод строки текста, начиная с адреса, записанного в В, С до нулевого байта4087CD 61 00CALL 61hВывод двух шестнадцатеричных цифр и аккумулятора408AC9RETБезусловный возврат к команде, с адресом 402А

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

409011 14 00VISX: LXI D, 0014hСоздание счетчика на 20 шагов409321 00 50LXI H, 5000hПомещение в пару H,L адреса исходного массива409601 20 42LXI B,4220hПомещение в пару регистров В, С адреса 4220h4099CD 4C 00CALL 4ChВывод строки текста, начиная с адреса, записанного в В, С до нулевого байта409С01 20 43LXI B,4320hПомещение в пару регистров В, С адреса 4320h409F7EMOV A,MКопирование содержимого ячейки памяти в аккумулятор40A0CD 61 00CALL 61hВывод двух шестнадцатеричных цифр и аккумулятора40A323INX HПродвижение адреса на следующую пару чисел40A4CD 4C 00CALL 4ChВывод строки текста, начиная с адреса, записанного в В, С до нулевого байта40A71DDCR EУменьшение счетчика на 140A8C2 9F 40JNZ 409FВозврат в 409F до исчерпания счетчика40ABC9RETБезусловный возврат к команде, адресом 4030

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

40B011 14 00VREZ: LXI D,0014hСоздание счетчика на 20 шагов40B321 00 70LXI H, 7000hПомещение в пару H,L адреса массива результатов40B601 20 44LXI B, 4420hПомещение в пару регистров В, С адреса 4420h40B9CD 4C 00CALL 4ChВывод строки текста, начиная с адреса, записанного в В, С до нулевого байта40BC01 20 43LXI B, 4320hПомещение в пару регистров В, С адреса 4320h40BF7EMOV A,MКопирование содержимого ячейки памяти в аккумулятор40C0CD 61 00CALL 61hВывод двух шестнадцатеричных цифр и аккумулятора40C323INX HПродвижение адреса на следующую пару чисел40C4CD 4C 00CALL 4ChВывод строки текста, начиная с адреса, записанного в В, С до нулевого байта40C71DDCR EУменьшение счетчика на 140C8C2 BF 40JNZ 40BFВозврат в 40BF до исчерпания счетчика40CBC9RETБезусловный возврат к команде, с адресом 4036

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

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


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


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

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

ЦП имеет 8 внутренних 8-битных регистров, понимает около 250 различных команд, может адресовать 65536 байт оперативной памяти и 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.

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

Тип процессора:® Core™ I3CPU M370 @ 2.4GHZ

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

,02 ГГЦ

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

8 ГБ

Видеокарта:GeForce GT 415M

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

ГБ

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

Операционная система:2.6.2.9200 (Windows 8.1)Office 2013

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

Вывод


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


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


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

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

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

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

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


Оглавление Введение 1. Аналитическая часть 1.1 Представление целых чисел в формате с фиксированной запятой 2. Практическая разработка 2.1 Бло

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ