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

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

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

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

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

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

Оглавление

  • Введение
  • 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-разрядной ячейке памяти следующим образом:

1

1

1

0

0

0

0

1

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

0

0

0

0

0

1

1

1

1

1

0

1

0

1

1

0

Итак, чтобы получить внутреннее представление целого числа без знака А, хранящегося в 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=1001012 в 16-разрядной ячейке будет иметь вид 0000000000100101.

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

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

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

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

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

1) а) Ѕ-1607Ѕ=160710=110010001112

б) прямой код в 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 - пара регистров, занятых результирующего массива.

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

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

адрес

данные

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

Комментарии

4000

31 00 80

LXI SP, 8000h

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

4003

21 05 50

LXI H, 5001h

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

4006

11 01 70

LXI D, 7001h

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

4009

01 00 60

LXI B, 6000h

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

400C

AF

XRA A

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

400D

02

STAX B

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

400E

0E 0A

MVI C,0Ah

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

4010

C5

M1: PUSH B

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

4011

7E

MOV A,M

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

4012

17

RAL

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

4013

DA 50 40

JC OTR

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

4016

7E

MOV A,M

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

4017

12

STAX D

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

4018

2B

DCX H

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

4019

1B

DCX D

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

401A

7E

MOV A,M

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

401B

12

STAX D

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

401C

23

INX H

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

401D

13

INX D

401E

23

M2: INX H

401F

13

INX D

4020

23

INX H

4021

13

INX D

4022

C1

POP B

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

4023

0D

DCR C

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

4024

C2 10 40

JNZ M1

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

4027

CD 80 40

CALL PODS

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

402A

CD 49 00

CALL 49h

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

402D

CD 90 40

CALL VISX

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

4030

CD 49 00

CALL 49 h

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

4033

CD B0 40

CALL VREZ

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

4036

C3 40 00

JMP 40h

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

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

4080

0A

PODS: LDAX B

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

4081

01 20 41

LXI B,4120h

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

4084

CD 4C 00

CALL 4Ch

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

4087

CD 61 00

CALL 61h

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

408A

C9

RET

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

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

4090

11 14 00

VISX: LXI D, 0014h

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

4093

21 00 50

LXI H, 5000h

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

4096

01 20 42

LXI B,4220h

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

4099

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

23

INX H

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

40A4

CD 4C 00

CALL 4Ch

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

40A7

1D

DCR E

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

40A8

C2 9F 40

JNZ 409F

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

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

23

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 различных команд, может адресовать 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.

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

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

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с.

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


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

  • Основные форматы данных и их представление. Запись чисел в формат с плавающей точкой. Вычитание чисел в формате с плавающей точкой. Регистры операндов и результата, размером формата числа с плавающей точкой, двойной точности. Поля смещённого порядка.

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

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

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

  • Общая характеристика и преимущество использования двоично-десятичных чисел с плавающей точкой. Разработка цифрового автомата. Функциональное назначение выводов корпуса МК51, арифметико-логического устройства, портов. Примеры деления данных чисел.

    курсовая работа [719,3 K], добавлен 12.09.2015

  • Символы, целые, числа с плавающей точкой в языке Си. Машинное представление значений типа char, double, float, беззнаковых чисел. Представление целых чисел в позиционных системах счисления с произвольным основанием. Алгоритм перевода b-ичной записи.

    презентация [296,3 K], добавлен 05.01.2014

  • Общее представление о записи данных. Виды регистров и типов данных с плавающей точкой. Модель выполнения программы SIMD. Формат данных в памяти регистра с плавающей точкой. Состояние и управление потоковым разрешением. Поле управления округлением.

    реферат [1,1 M], добавлен 06.01.2011

  • Операции, осуществляемые при реализации алгоритмов цифровой обработки сигналов. Применение процессора ADSP-2106x для операций с фиксированной и плавающей точкой. Исключения при выполнении операций с плавающей точкой, режимы и границы округления.

    реферат [35,2 K], добавлен 13.11.2009

  • Программирование микро ЭВМ на МП БИС КР580ИК80. Арифметические команды. Представление чисел в различных системах счисления и отображение их на дисплее. Сложение массива однобайтных чисел. Вычитание одинаковых чисел. Сложение двух десятичных чисел.

    лабораторная работа [263,8 K], добавлен 03.03.2009

  • Порождение целых чисел в позиционных системах счисления. Почему мы пользуемся десятичной системой, а компьютеры - двоичной (восьмеричной и шестнадцатеричной)? Перевод чисел из одной системы в другую. Математические действия в различных системах счисления.

    конспект произведения [971,1 K], добавлен 31.05.2009

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

    контрольная работа [138,9 K], добавлен 05.06.2010

  • Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.

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

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