Контролируемая самостоятельная работа по «Архитектуре компьютеров»

Автор: Пользователь скрыл имя, 16 Августа 2011 в 21:41, контрольная работа

Описание работы

Задача: показать принцип кодирования каждой десятичной цифры числагруппой из четырех битов.
Десятичные числа — специальный вид представления числовой ин-формации, в основу которого положен принцип кодирования каждой деся-тичной цифры числагруппой из четырех битов. При этом каждый байт числа содержит одну или дведесятичные цифры в так называемом двоично-десятичном коде (Binary-CodedDecimal, BCD).

Содержание

Постановка задачи 3
Разработка алгоритма программы 4
Формализация алгоритма 5
Компиляция программы 6
Компоновка программы 7
Запуск и тестирование 8
Листингпрограммы 13
Литература 14

Работа содержит 1 файл

АК.docx

— 81.42 Кб (Скачать)
 
 
 
 
 
 
 

Контролируемая  самостоятельная  работа

по  дисциплине «Архитектура компьютеров» 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Оглавление

Постановка задачи 3

Разработка алгоритма программы 4

Формализация алгоритма 5

Компиляция программы 6

Компоновка программы 7

Запуск и тестирование 8

Листинг программы 13

Литература 14

Постановка задачи

 

     Задача: показать  принцип кодирования каждой десятичной цифры числа группой из четырех битов.

     Десятичные  числа — специальный вид представления  числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырех битов. При этом каждый байт числа содержит одну или две десятичные цифры в так называемом двоично-десятичном коде (Binary-Coded Decimal, BCD).

     Как описать двоично-десятичные числа  в программе? Для этого можно использовать только две директивы описания и инициализации данных — DB и DT. Возможность применения только этих директив для описания BCD-чисел обусловлена тем, что к таким числам также применим принцип «младший байт по младшему адресу. И вообще, при использовании такого типа данных, как BCD-числа, порядок описания этих чисел в программе и алгоритм их обработки — это дело вкуса и личных пристрастий программиста. 
 
 
 
 
 
 
 
 
 
 
 
 

Разработка алгоритма программы

 

 

 

 

 

 
 

 
 

 
 

     Рис. 1.1. Блок-схема принцип кодирования каждой десятичной цифры числа группой из

     четырех битов.

Формализация алгоритма

masm; начало программы

model small

stack 256

.data ;сегмент данных

per_l db 2,3,4,6,8,2; неупакованное BCD-число 286432

per_3 dt 9875645 ;упакованное BCD-число 9875645

.code ;сегмент кода

main: ;точка входа в программу

mov ax,@data ;связываем регистр dx с сегментом

mov ds.ax ;данных через регистр ах

exit: ;посмотрите в отладчике дамп сегмента данных

mov ax,4c00h; стандартный выход

int 21h

end main ;конец программы 
 
 
 
 
 
 

Компиляция программы

  Компиляция - процесс перевода программы из текстового вида в машинный код. Запускаем компилятор tasm и передаем с командной строки имя файла, содержащего программу.В случае успешной компиляции будет создан файл, содержащий объектный код программы с расширение .obj, который ещё не является исполняемым модулем.

Компоновка программы

     Компоновка - создание из файла объектного кода исполняемого модуля. 
В качестве параметра компоновщик tlink принимает имя файла содержащего объектный код программы. В случае успешной компоновки будет создан исполняемый модуль с расширением .exe

 
 
 
 
 
 
 
 
 
 
 

Запуск и тестирование

 

     На  данном этапе необходимо проверить, соответствует ли написанная программа  постановке задачи:

 
 
 
 
 
 
 
 
 
 
 
 
 

     MOV

     Команда MOV, хоть название ее и происходит от слова «move» (перемещать), на самом деле не перемещает, а копирует значение из источника в приемник: MOV приемник, источник.

Осуществляет  передачу содержимого второго операнда в первый.

Регистр флажков  не модифицируется. 

 Форматы команды: 

                                                       7                0 

    +-------------------------+ l = 2 байта            +----------------+ 

    ¦ MOV  Регистр1, Регистр2 ¦ t = 2 такта            ¦   100010 d w   ¦ 

    +-------------------------+                        ¦----------------¦ 

    +-------------------------+ l = 3-4 байта          ¦ mod  reg  r/m ¦ 

    ¦ MOV  Регистр,  Память   ¦ t = 9+ЕА тактов        ¦----------------¦ 

    +-------------------------+                        ¦     dispL      ¦ 

    +-------------------------+ l = 3-4 байта          +----------------¦ 

    ¦ MOV  Память,   Регистр  ¦ t = 8+ЕА  тактов        ¦     dispH      ¦ 

    +-------------------------+                        +----------------+ 
 
 

                                                       7                0 

    +-------------------------+ l = 3-6 байта          +----------------+ 

    ¦ MOV  Память, Константа  ¦ t = 10+ЕА  тактов       ¦   1100011  w   ¦ 

    +-------------------------+                        ¦----------------¦ 

                                                       ¦  mod 000  r/m  ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dispL      ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dispH      ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dataL      ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dataH      ¦ 

                                                       +----------------+ 
 
 

                                                       7                0 

    +-------------------------+ l = 2-3 байта          +----------------+ 

    ¦ MOV  Регистр, Константа ¦ t = 4 такта            ¦   1011 w reg   ¦ 

    +-------------------------+                        ¦----------------¦ 

     Нельзя  определять сегментные регистры.            ¦     dataL      ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dataH      ¦ 

                                                       +----------------+ 
 
 

                                                       7                0 

    +-------------------------+ l = 3 байта            +----------------+ 

    ¦ MOV  Аккумулятор, Память¦ t = 10 тактов          ¦   1010000  w   ¦ 

    +-------------------------+                        ¦----------------¦ 

                                                       ¦     dispL      ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dispH      ¦ 

                                                       +----------------+ 
 
 

                                                       7                0 

    +-------------------------+ l = 3 байта            +----------------+ 

    ¦ MOV  Память, Аккумулятор¦ t = 10 тактов          ¦   1010001  w   ¦ 

    +-------------------------+                        ¦----------------¦ 

                                                       ¦     dispL      ¦ 

                                                       ¦----------------¦ 

                                                       ¦     dispH      ¦ 

                                                       +----------------+ 
 
 

                                                       7                0 

    +-------------------------+ l = 2-4 байта          +----------------+ 

    ¦ MOV СегРегистр, Память  ¦ t = 8+ЕА тактов        ¦   10001110     ¦ 

    +-------------------------+                        ¦----------------¦ 

    +-------------------------+ l = 2-4 байта          ¦ mod 0sreg r/m ¦ 

    ¦ MOV СегРегистр, Регистр ¦ t = 8+ЕА тактов        ¦----------------¦ 

    +-------------------------+                        ¦     dispL      ¦ 

       Нельзя использовать регистр  CS, т.к.           +----------------¦ 

       результат операции будет неопределен.           ¦     dispH      ¦ 

      При   инициализации    рекомендуется            +----------------+ 

       использовать регистр АХ. 
 
 

                                                       7                0 

    +-------------------------+ l = 2-4 байта          +----------------+ 

    ¦ MOV Память,  СегРегистр ¦ t = 9+ЕА  тактов        ¦   10001100     ¦ 

    +-------------------------+                        ¦----------------¦ 

    +-------------------------+ l = 2-4 байта          ¦ mod 0sreg r/m ¦ 

    ¦ MOV Регистр, CегРегистр ¦ t = 9+ЕА тактов        ¦----------------¦ 

    +-------------------------+                        ¦     dispL      ¦ 

                                                       +----------------¦ 

                                                       ¦     dispH      ¦ 

                                                       +----------------+ 
 

Информация о работе Контролируемая самостоятельная работа по «Архитектуре компьютеров»