Автор: Пользователь скрыл имя, 16 Августа 2011 в 21:41, контрольная работа
Задача: показать принцип кодирования каждой десятичной цифры числагруппой из четырех битов.
Десятичные числа — специальный вид представления числовой ин-формации, в основу которого положен принцип кодирования каждой деся-тичной цифры числагруппой из четырех битов. При этом каждый байт числа содержит одну или дведесятичные цифры в так называемом двоично-десятичном коде (Binary-CodedDecimal, BCD).
Постановка задачи 3
Разработка алгоритма программы 4
Формализация алгоритма 5
Компиляция программы 6
Компоновка программы 7
Запуск и тестирование 8
Листингпрограммы 13
Литература 14
Контролируемая самостоятельная работа
по
дисциплине «Архитектура
компьютеров»
Оглавление
Постановка задачи 3
Разработка алгоритма программы 4
Формализация алгоритма 5
Компиляция программы 6
Компоновка программы 7
Запуск и тестирование 8
Листинг программы 13
Литература 14
Задача: показать принцип кодирования каждой десятичной цифры числа группой из четырех битов.
Десятичные
числа — специальный вид
Как
описать двоично-десятичные числа
в программе? Для этого можно использовать
только две директивы описания и инициализации
данных — 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 приемник, источник.
Осуществляет передачу содержимого второго операнда в первый.
Регистр флажков
не модифицируется.
Форматы команды:
+-------------------------+
l = 2 байта
+----------------+
¦ MOV
Регистр1, Регистр2 ¦ t = 2 такта
¦ 100010 d w ¦
+-------------------------+
+-------------------------+
l = 3-4 байта
¦ mod reg r/m ¦
¦ MOV
Регистр, Память ¦ t = 9+ЕА тактов
¦----------------¦
+-------------------------+
+-------------------------+
l = 3-4 байта
+----------------¦
¦ MOV
Память, Регистр ¦ t = 8+ЕА
тактов ¦
dispH ¦
+-------------------------+
+-------------------------+
l = 3-6 байта
+----------------+
¦ MOV
Память, Константа ¦ t = 10+ЕА
тактов ¦ 1100011
w ¦
+-------------------------+
+-------------------------+
l = 2-3 байта
+----------------+
¦ MOV
Регистр, Константа ¦ t = 4 такта
¦ 1011 w reg ¦
+-------------------------+
Нельзя
определять сегментные
+-------------------------+
l = 3 байта
+----------------+
¦ MOV
Аккумулятор, Память¦ t = 10 тактов
¦ 1010000 w ¦
+-------------------------+
+-------------------------+
l = 3 байта
+----------------+
¦ MOV
Память, Аккумулятор¦ t = 10 тактов
¦ 1010001 w ¦
+-------------------------+
+-------------------------+
l = 2-4 байта
+----------------+
¦ MOV
СегРегистр, Память ¦ t = 8+ЕА тактов
¦ 10001110 ¦
+-------------------------+
+-------------------------+
l = 2-4 байта
¦ mod 0sreg r/m ¦
¦ MOV СегРегистр,
Регистр ¦ t = 8+ЕА тактов
¦----------------¦
+-------------------------+
Нельзя использовать
регистр CS, т.к.
+----------------¦
результат операции
будет неопределен.
¦ dispH ¦
При инициализации
рекомендуется
+----------------+
использовать регистр
АХ.
+-------------------------+
l = 2-4 байта
+----------------+
¦ MOV
Память, СегРегистр ¦ t = 9+ЕА
тактов ¦
10001100 ¦
+-------------------------+
+-------------------------+
l = 2-4 байта
¦ mod 0sreg r/m ¦
¦ MOV Регистр,
CегРегистр ¦ t = 9+ЕА тактов
¦----------------¦
+-------------------------+
Информация о работе Контролируемая самостоятельная работа по «Архитектуре компьютеров»