Министерство высшего образования Российской Федерации
Санкт-Петербургский государственный технологический институт
(технический университет)
Кафедра САПРиУ
Пояснительная записка
к курсовому проекту на тему:
«Разработка программ преобразования форматов двоичных данных
и сортировок в машинных кодах микро-ЭВМ СМ-1800
с помощью эмулятора на ПК»
Выполнил: студент гр.№843 –
Мубаракшин Ильдар Ахтямович.
Руководитель: Гиляров Владимир Николаевич
Санкт-Петербург
2005
Содержание:
1. Введение …………………………………………………………………………..5
Аналитическая часть………………………………………………………………...6
1.1 Двоично-десятичное кодирование………….………………………………..6
1.2 Арифметические действия над ДД-кодами………………………………….6
1.3 Стандарты кодирования текстов………………………………………..…….7
2. Описание программы – эмулятора, выбранной для решения задач………..…..8
Принцип работы эмулятора………………………………………………...…… 8
Определение приоритета предоставляемых моделей.………………………….10
3. Практическая разработка………………………………………………………….12
3.1 Блок-схема……………………………………………………………………...12
3.2 Листинг программы……………………………………………………………13
4. Описание использованных при проектировании средств вычислительной
техники…………………………………………………………………………….15
5. Выводы……………………………………………………………………………..16
6 Литература…………………………………………………………………………17
Введение
Задачей данного курсового проекта ставится разработка алгоритма и его программная реализация на Эмуляторе микро-ЭВМ СМ-1800.
Необходимо, пользуясь программой-монитором, занести в память ЭВМ, начиная с адреса следующий массив из восьмиразрядных констант:
Адрес16 |
Константа16 |
Адрес16 |
Константа16 |
5000 5001 5002 5003 5004 |
85 00 8D 07 80 |
5005 5006 5007 5008 5009 |
22 D4 A9 FF A0 |
Будем рассматривать эти коды как массив однобайтных целых положительных чисел со знаком.
Составить программу, которая выбирает из исходного массива (с адреса 500016) положительные числа и преобразует их в массив кодов КОИ-7 шестнадцатеричных цифр, записывая результат с адреса 600016 (600016 символ старшей шестнадцатеричной цифры 1-го числа, 600116 – символ младшей шестнадцатеричной цифры 1-го числа и т.д.).
Программу располагать в памяти с ячейки 400016.
Аналитическая часть.
Двоично-десятичное кодирование.
Поскольку человеку наиболее привычна арифметика в десятичной системе счисления, а для компьютера - двоичная арифметика, была введена компромиссная система двоично-десятичной записи чисел. Такая система чаще всего применяется там, где существует необходимость частого использования процедуры десятичного ввода-вывода. (электронные часы, калькуляторы и т.д.). В таких устройствах не всегда целесообразно предусматривать универсальный микрокод перевода двоичных чисел в десятичные и обратно по причине небольшого объема программной памяти.
Принцип построения этой системы достаточно прост: каждая десятичная цифра преобразуется прямо в свой десятичный эквивалент из 4 бит, например:
250610=0010 0101 0000 0110DEC:
Десятичное число |
2 |
8 |
0 |
6 |
Двоично-десятичное число |
0010 |
1000 |
0000 |
0110 |
Преобразуем двоично-десятичное число 0111 0010 0001 1000 в его десятичный эквивалент. Каждая группа из 4 бит преобразуется в её десятичный эквивалент. Получим 0111 0010 0001 1000DEC = 721810:
Двоично-десятичное число |
0111 |
0011 |
0001 |
0101 |
Десятичное число |
7 |
3 |
1 |
5 |
Микропроцессоры используют чистые двоичные числа, однако понимают и команды преобразования в двоично-десятичную запись. Полученные двоично-десятичные числа легко представимы в десятичной записи, более понятной людям.
Арифметические действия над двоично-десятичными (ДД) кодами.
Команда: |
ADD B |
Назначение: |
<A>+<B><A> |
Описание: |
Сложение содержимого регистра B с аккумулятором |
Команда: |
ADD M |
Назначение: |
<A>+<M><A> |
Описание: |
Сложение содержимого ячейки памяти с аккумулятором |
Команда: |
ADI (B2) |
Назначение: |
<A>+<B2><A> |
Описание: |
Сложение непосредственных данных (B2) с аккумулятором |
Команда: |
ADC B |
Назначение: |
<A>+<B>+<CY><A> |
Описание: |
Сложение содержимого регистра B с аккумулятором |
Команда: |
ACI (B2) |
Назначение: |
<A>+<B2>+<CY><A> |
Описание: |
Сложение содержимого ячейки памяти с аккумулятором |
Команда: |
DAD B |
Назначение: |
<BC>+<HL><HL> |
Описание: |
Сложение <B,C> с <H,L> (в качестве аккумулятора используется пара <H,L>) |
Команда: |
DAD H |
Назначение: |
<HL>*2<HL> |
Описание: |
Удвоение значения в <H,L> |
Команда: |
SUB B |
Назначение: |
<A>-<B><A> |
Описание: |
Вычитание из аккумулятора содержимого регистра <B> |
Команда: |
SUB M |
Назначение: |
<A>-<M><A> |
Описание: |
Вычитание из аккумулятора содержимого ячейки памяти |
Стандарты кодирования текстов.
С целью стандартизации в компьютерах используется американский национальный стандартный код для обмена информацией ASCII (American National Standard Code for Information). Наличие стандартного кода облегчает обмен данными между различными устройствами. Восьмибитовый расширенный ASCII-код обеспечивает представление 256 символов, включая символы для национальных алфавитов.
Системы кодирования текстовых данных были разработаны и в других странах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (код обмена информацией, семизначный). Однако поддержка производителей оборудования и программ вывела американский код ASCII на уровень международного стандарта, и национальным системам кодирования пришлось "отступить" во вторую, расширенную часть системы кодирования, определяющую значения кодов со 128 до 255. Отсутствие единого стандарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устаревших.Так, например, кодировка символов русского языка, известная как кодировка Windows-1251, была введена "извне" – компанией Microsoft, но учитывая широкое распространение операционных систем и других продуктов этой компании в России она нашла широкое распространение в России. Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.
Другая распространенная кодировка носит название КОИ-8 (код обмена информацией, восьмизначный) – ее происхождение относится ко времени действий Совета Экономической Взаимопомощи государств Восточной Европы. Сегодня кодировка КОИ-8 имеет широкое распространение в компьютерных сетях на территории России и в российском секторе Интернета.
Международный стандарт, в котором предусмотрена кодировка символов русского алфавита, носит название ISO (International Standard Organization – Международный институт стандартизации). На практике данная кодировка используется редко.
На компьютерах, работающих под операционной системой MS-DOS, могут действовать еще две кодировки (кодировка ГОСТ и кодировка ГОСТ альтернативная). Первая из них считалась устаревшей даже в первые годы появления персональной вычислительной техники, но вторая используется и по сей день.
В связи с возникшими неудобствами было принято решение на консорциуме фирм создать кодовую таблицу, где будет не только сам символ, но и инструкция по его воспроизведению. Такая таблица получила название Unicode.
Сложение
Данная операция выполняется в два этапа: сложение и коррекция. После сложения в тетрадах может оказаться недопустимая комбинация или может возникнуть перенос. Алгоритм коррекции состоит из двух шагов:
1) Если AC = 1 или младшая тетрада меньше 15, но больше 9, то к ней прибавляется код 6. Возникающий перенос прибавляется к старшей тетраде;
2) Если C = 1 или старшая тетрада содержит недопустимую комбинацию, то к результирующему байту прибавляется код 60h.
Примеры сложения ДД-чисел представлены ниже:
07 0000 0111
22 0010 0010
29 0010
1001
7 9
80 1000 0000
85 1000 0101
165 1000
0101
1100 0000
CY
1 0100 0101
1 6 5