Учебная работа. Реферат: Разработка программ преобразования форматов двоичных данных и сортировок в машинных кодах микро-

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Разработка программ преобразования форматов двоичных данных и сортировок в машинных кодах микро-

Государственное образовательное учреждение

высшего проф образования

«Санкт-Петербургский муниципальный технологический институт

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

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

Учебная дисциплина: Организация ЭВМ и систем

Курс: 2

Группа: 897

Объяснительная записка к курсовому проекту на тему:

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

Вариант № 4

Студентка


Управляющий

Рекомендуемая оценка

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

2010

Содержание

ВВЕДЕНИЕ……………………………………………………..………..3

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

1.1 Система счисления………………………………………4

1.1.1 Двоичная система счисления………………..……4

1.1.2 Восьмеричная система счисления…………………….4

1.1.3 Шестнадцатеричная система счисления…………4

1.2 Правила переводов десятичных чисел в их и назад……………………………………………………………4

1.2.1 правило перевода восьмеричной системы счисления в двоичную систему счисления………….…….4

1.2.2 правило перевода двоичной системы счисления в восьмеричную систему счисления…………..5

1.2.3 правило перевода шестнадцатеричной системы счисления в двоичную систему счисления…….5

1.2.4 правило перевода двоичной системы счисления в шестнадцатеричную систему счисления…..6

1.3 Форматы хранения чисел с плавающей точкой……6

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

2.1 Блок-схема метода…………………………………….9

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

2.3 Результаты тестирования………………………..…17

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

ВЫВОДЫ………………………………………………………………..19

Перечень литературы……………………………………………………..20

Введение

Курсовая работа состоит из 2-ух частей: аналитической и практической.

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

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

В формате с плавающей точкой ( 1+8+23 ) хранятся два числа. Восьмиразрядный порядок имеет смещение рсм = 12810 . Двоичная двадцатитрехразрядная мантисса не содержит старшей единицы, получаемой в итоге нормализации. Если больше левое число ( с адреса 500016 ) , то в ячейке 600016 сформировать код 01, если больше правое ( с адреса 500416 ) – код 02, при равенстве чисел – код 00. программка обязана размещаться в памяти с ячейкой 400016.

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

1.1 Система счисления

Система счисления
— это метод записи чисел при помощи данного набора особых символов (цифр).

Запись числа в некой системе счисления именуется кодом числа
.

Отдельную позицию в изображении числа принято именовать разрядом
, а номер позиции — номером разряда
. Число разрядов в записи числа именуется разрядностью
и совпадает с его длиной.

1.1.1 Двоичная система счисления.

В данной системе всего две числа — 0 и 1. Основание системы — число 2. Самая правая цифра числа указывает число единиц, последующая цифра — число двоек, последующая — число четверок и т.д. Двоичная система счисления дозволяет закодировать хоть какое натуральное число — представить его в виде последовательности нулей и единиц.

1.1.2 Восьмеричная система счисления

В данной системе счисления 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7. Чтоб перевести в двоичную систему, нужно поменять каждую цифру эквивалентной ей двоичной триадой (тройкой цифр). Просто додуматься, что для перевода неоднозначного двоичного числа в восьмеричную систему необходимо разбить его на триады справа влево и поменять каждую триаду соответственной восьмеричной цифрой.

1.1.3 Шестнадцатеричная система счисления

Запись числа в восьмеричной системе счисления довольно малогабаритна, но еще компактнее она выходит в шестнадцатеричной системе. В качестве первых 10 из 16 шестнадцатеричных цифр взяты обычные числа 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, а вот в качестве других 6 цифр употребляют 1-ые буковкы латинского алфавита: A, B, C, D, E, F. Перевод из шестнадцатеричной системы в двоичную и назад делается аналогочно тому, как это делается для восьмеричной системы

1.2 Правила переводов десятичных чисел в их и назад

1.2.1 правило перевода восьмеричной системы счисления в двоичную систему счисления

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

восьмеричной числа в виде двоичной требуется наименее 3-х двоичных цифр,

двоичный эквивалент дополняется слева нулями ( незначащие нули не исказят значения числа).Таковым образом, к примеру, при записи четырехразрядного

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

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

Если начальное число дробное, т.е. имеет целую и дробную часть, то в

двоичном числе запятая ставится меж триадами, представляющими

надлежащие числа начального числа.

Преобразуем восьмеричное число 5000

Для этого запишем для каждой числа подобающую триаду:

5 —> 101

0 —> 000

сейчас можно записать число в двоичной форме

5000 —> 101 000 000 000

1.2.2правило перевода двоичной системы счисления в восьмеричную систему счисления

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

соответственной восьмеричной цифрой. Положение запятой сохраняется по этим же правилам, что и в правиле перевода восьмеричной системы счисления в двоичную.

Пример.

Представить двоичное число 101 000 000 1 в форме восьмеричного.

сейчас дополним до 3-х цифр нулями самую правую группу справа:

101 000 000 100

Заменим каждую триаду соответственной восьмеричной цифрой:

101 000 000 100 —> 5004

1.2.3 правило перевода шестнадцатеричной системы счисления в двоичную систему счисления

При переводе многоразрядного шестнадцатеричного числа в двоичную форму каждую цифру начального числа подменяют группой буквально из 4 двоичных цифр (подменяют тетрадой двоичных цифр). Положение

запятой сохраняется по этим же правилам, что и в правиле перевода восьмеричной системы счисления в двоичную. В конечной

записи можно откинуть самые левые (незначащие) нули и самые правые нули

дробной части.

Пример.

Конвертировать шестнадцатеричное число “8А,F1” в двоичную форму.

Для этого запишем для каждой числа подобающую тетраду:

8 —> 1000

А —> 1010

F —> 1111

1 —> 0001

сейчас можно записать число в двоичной форме

8A,F1 -> 10001010,11110001

1.2.4 правило перевода двоичной системы счисления в шестнадцатеричную систему счисления

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

Пример.

Представить двоичное число 10000111,10100011 в форме шестнадцатеричного. Разобьем начальное число на группы по четыре числа, приняв в качестве точки отсчета положение запятой:

1000 0111 , 1010 0011

Заменим каждую тетраду соответственной шестнадцатеричной цифрой:

1000 0111 , 1010 0011 -> 87,А3

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

1.3 Форматы хранения чисел с плавающей точкой

Числовые величины, которые могут принимать любые значения (целые и дробные) именуются вещественными числами. В арифметике также употребляется термин «действительные числа». Решение большинства математических задач сводится к вычислениям с вещественными числами. Вещественные числа в памяти компа представляются в форме с плавающей точкой.

Форма с плавающей точкой употребляет системы счисления q в некой целой степени p, которую именуют порядком
:

А=m x q^p

к примеру, число 128 можно записать в виде: 0,0000000128 х 10^10. тут m=0,0000000128 – мантисса, p=10 – порядок. Порядок показывает, на какое количество позиций и в котором направлении обязана «переплыть», т.е. сместиться десятичная в мантиссе. Отсюда заглавие «плавающая точка». Но справедливы и последующие равенства:

12,8 х 10 = 1,28 x 10^2 = 0,128 x 10^3 = 1280 x 10^(-1)

Выходит, что машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) употребляют нормализованное 0.1q £m< 1q ,

другими словами мантисса меньше единицы и 1-ая означающая цифра — не ноль. Как следует, для рассмотренного числа нормализованным представлением будет: 0,0000000128 x 10^10.

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

Пусть в памяти компа вещественное число представляется в форме с плавающей точкой в двоичной системе счисления (q=2) и занимает ячейку размером 4 б. В ячейке обязана содержаться последующая информация о числе: символ числа, порядок и значащие числа мантиссы. Ах так эта информация размещается в ячейке:


± маш. порядок
МАН
ТИС
СА

1-й б
2-й б
3-й б
4-й б

В старшем бите 1-го б хранится символ числа. В этом разряде 0 обозначает плюс, 1 – минус. Оставшиеся 7 бит первого б содержат машинный порядок. В последующих 3-х б хранятся значащие числа мантиссы.

Что такое машинный порядок? В 7 двоичных разрядах помещаются двоичные числа в спектре от 0000000 до 1111111. В десятичной системе это соответствует спектру от 0 до 127. Всего 128 значений. символ порядка в ячейке не хранится. Но порядок, разумеется, быть может как положительным, так и отрицательным. Уместно эти 128 значений поделить поровну меж положительными и отрицательными значениями порядка. В таком случае меж машинным порядком и настоящим (назовем его математическим) устанавливается последующее соответствие:


Машинный порядок
0
1
2
3

64
65

125
126
127

Математический порядок
-64
-63
-62
-61

0
1

61
61
63

Если обозначить машинный порядок Мq, а математический q, то связь меж ними выразится формулой:

Мq = q + 64

Итак, машинный порядок сдвинут относительно математического на 64 единицы и имеет лишь положительные значения. Приобретенная формула записана в десятичной системе счисления. В двоичной системе счисления формула имеет вид:

Мq = q + 10000002

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

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

1) Перевести модуль данного числа в двоичную систему счисления;

2) Записать приобретенное двоичное число в нормализованном виде;

3) Найти машинный порядок с учетом смещения;

4) Беря во внимание символ данного числа (0 – положительное; 1 – отрицательное), записать его машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач).

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

2.1Блок-схема метода

Основная программка

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

Распределение программки

Е – Счетчик цикла

H,L –Текущий б первого числа

B,C – Текущий б второго числа

Листинг программки


адресок
16-ричный код
Код Ассемблера
Комменты

4000
30 00 80
LXI SP, 8000h
Создание стека

4003
21 00 50
LXI H, 5000h
Получение исходного адреса чисел

4006
01 00 41
LXI B, 4100h
Запись в регистры ВС адреса, по которому записано 1-ое сообщение

4009
CD 4F 00
CALL 4Fh
Вывод сообщения «Pervoechislo» на монитор

400С
1E 05
MVI E, 05h
Создание счетчика на 4 шага

400Е
1D
DCR E
Вычитание единицы из значения счетчика

400F
CA 1A 40
JZ 401Ah
Выход из цикла

4012
CD 67 00
CALL 67h
Ввод 1-го б числа в аккумулятор

4015
77
MOV M,A
Копирование б из аккума в подобающую ячейку памяти

4016
2C
INR L
Переход к последующему адресу

4017
C3 0E 40
JMP 400Eh
Переход на начало цикла

401A
CD 49 00
CALL 49h
Переход на новейшую строчку

401D
01 25 41
LXI B, 4125h
Запись в регистры ВС адреса, по которому записано 2-ое сообщение

4020
CD 4F 00
CALL 4Fh
Вывод сообщения «Vtoroechislo» на монитор

4023
1E 05
MVI E, 05h
Создание счетчика на 4 шага

4025
1D
DCR E
Вычитание единиц из значения счетчика

4026
CA 34 40
JZ 4034h
Выход из цикла(2 число введено)

4029
CD 67 00
CALL 67h
Ввод 1-го б числа в аккумулятор

402C
77
MOV M,A
Копирование б из аккума в подобающую ячейку памяти

402D
2C
INR L
Переход к последующему адресу

402E
C3 25 40
JMP 4025h
Переход на начало цикла

4031
CD 49 00
CALL 49h
Переход на новейшую строчку

4034
21 03 50
LXI H, 5003h
Запись в пару HL адреса 4 б 1 константы

4037
01 07 50
LXI B, 5007h
Запись в пару HL адреса 4 б 2 константы

403A
11 03 50
LXI D, 5003h
Запись в пару HL адреса 4 б 1 константы

403D
1A
LDAX D
Копирование в аккумулятор 4 б 1 константы

403E
E6 7F
ANI 7Fh
установка модуля на 1 число (Умножение на 7Fh)

4040
77
MOV M,A
Запись модифицированного 4 б 1 числа на аккумулятор в память

4041
0A
LDAX B
Копирование в аккумулятор 4 б 2 константы

4042
E6 7F
ANI 7Fh
установка модуля на 2 число (Умножение на 7Fh)

4044
BE
CMP M
Сопоставление 4 б 2-ух чисел(вычитание из второго числа 1-ое)

4045
DA 71 40
JC 4071h
Переход на адресок 4071h (если б первого числа больше б второго(су=1))

4048
C2 82 40
JNZ 4082h
Переход на адресок 4082h(если б второго числа больше б первого(су=1)),если нет перехода байты равны

404B
2B
DCX H
Уменьшение адреса б первого числа

404C
0B
DCX B
Уменьшение адреса б второго числа

404D
1E 04
MVI E, 04h
Создание цикла на 3 шага

404F
1D
DCR E
Вычитание единицы из значения счетчика

4050
CA 60 40
JZ 4060h
Выход из цикла(числа равны)

4053
0A
LDAX B
Копирование в аккумулятор б 2 константы

4054
BE
CMP M
Сопоставление б 2-ух чисел(вычитание из второго числа 1-ое)

4055
DA 71 40
JC 4071h
Переход на адресок 4071h(если б первого числа больше б второго)

4058
C2 82 40
JNZ 4082h
Переход на адресок 4082h(если б второго числа больше б первого),если нет перехода,то байты равны

405B
0B
DCX B
Уменьшение адреса б первого числа

405C
2B
DCX H
Уменьшение адреса б второго числа

405D
C3 4F 40
JMP 404Fh
Переход на начало цикла

4060
21 00 60
LXI H, 6000h
Занесение в пару HL адресок ячейки, в какой необходимо записать итог

4063
36 00
MVI M, 00h
Запись в ячейку памяти значения 00h( числа равны)

4065
CD 49 00
CALL 49h
Переход на новейшую строчку

4068
01 75 42
LXI B, 4275h
Запись в регистры ВС адреса, по которому записано сообщение «Chislaravni»

406B
CD 4F 00
CALL 4Fh
Вывод сообщения «Chislaravni» на экран

406E
C3 93 40
JMP 4093h
Переход на конец программки(по адресу 4093h)

4071
21 00 60
LXI B, 6000h
Занесение в пару HL адреса ячейки, в какой необходимо записать итог

4074
36 01
MVI M, 01h
Запись в ячейку памяти значения 01h (1-ое число больше второго)

4076
CD 49 00
CALL 49h
Переход на новейшую строчку

4079
01 75 41
LXI B, 4175h
Запись в регистры ВС адреса, по которому записано сообщение «Pervoechislobolshevtorogo»

407C
CD 4F 00
CALL 4Fh
Выводсообщения «Pervoe chislo bolshe vtorogo» наэкран

407F
C3 93 40
JMP 4093h
Переход на конец программки(по адресу 4093h)

4082
21 00 60
LXI H, 6000h
Занесение в пару HL адреса ячейки, в какой необходимо записать итог

4085
36 02
MVI M, 02h
Запись в ячейку памяти монитор в режиме ожидания ввода команды

4096
21 00 41
LXI H, 4100h
загрузка в пару HL адреса памяти для работы процедуры ввода TTIO

4099
CD 55 00
CALL 55h
Вызов подпрограммы TTIO ввод знака в аккумулятор

409C
FE 30
CPI 30h
Сопоставление введенного при помощи TTIO знака с кодом 30h

409E
CA A6 40
JZ 40A6h
Проверка на конец ввода текста(введен ли знак 0),если да,то переход на адресок 40А6h

40A1
77
MOV M, A
загрузка кода знака из аккума в ячейку памяти

40A2
23
INX H
Переход к последующему адресу(прибавление 1)

40A3
C3 99 40
JMP 4099h
Переход на начало цикла

40A6
AF
XRA
Обнуление аккума

40A7
77
MOV M, A
Обнуление содержимого ячейки памяти

40A8
01 00 41
LXI B, 4100h
загрузка в пару ВС исходного адреса, по которому записан текст

40AB
CD 4F 00
CALL 4Fh
Вывод введенного сообщения на экран

40AE
C3 40 00
JMP 40H
Выход в монитор в режиме ожидания ввод команды

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

В ячейке памяти с адресами от 500016 до 500716 занесен массив констант, соответственный заданию. На дисплее выводится сообщение « Pervoechislobolshevtorogo », в ячейке памяти с адресом 6000 сформирован код 0116.

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

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

· Микропроцессор: Intel Pentium Dual Core 2100
МГц
Penryn (T4300)

· шина: 800 1 Mb L2 Cache

· Оперативка: 3072 Мб DDR2-800МГц

· Экран: 14″ LED Зеркальный (Glare)

· Твердый диск: 320 Гб (5400 rpm), SATA

· Устройства ввода: Кл-ра Windows, Сенсорный планшет Touch Pad

· Текстовый редактор: Microsoft Office Word 2003

· Эмулятор СМ-1800 v3.01

Выводы

Курсовой проект выполнен стопроцентно в согласовании с Заданием

В итоге выполнения курсового проекта была написана программка , выполняющая сопоставление по модулю 2-ух данных в формате плавающей точкой чисел. Основной смысл программки заключается в сопоставлении чисел при помощи вычитания, для этого были применены два флага: carry и zero.

Благодаря выполнению проекта, я закрепила способности программирования на языке Assembler и выяснила что-то новое о главных системах счисления.

Перечень литературы

1) МикроЭВМ СМ-1800. Архитектура, программирование, применение / А.В. Гиглавный, Н.Д. Кобанов, Н.Л. Прохоров, А.Н. Шкамарда. – М.: деньги и статистика, 1984.

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

3) Гиляров В.Н. Видеотерминал и клавиатура микроЭВМ: Методические указания к лабораторной работе / В.Н. Гиляров. — СПб.: СПбГТИ(ТУ), 2006.

4) HTTP://irnik.narod.ru/htm/sistema.htm

5) http://works.tarefer.ru/69/100411/index.html

6)http://ulkolledg.narod.ru/material/Burdina_2/chisla.htm

7) HTTP://www.intuit.ru/department/se/pinform/1/5.html

]]>