Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Результаты работы программы.

Отчет

о лабораторной работе №1

Задачи 1, 2

по курсу

«Вычислительные машины, системы и сети»

 

 

Выполнил: студ. гр.БАГ-08-01 Ю.В.Новикова

Проверил: доцент М.Р. Сафаров

 

Уфа 2010

 

Задача 1. Первое слагаемое задавать с клавиатуры в строке 20h-2Fh РПД (младший байт по адресу 2Fh), второе слагаемое – в строке 30h-3Fh РПД (младший байт по адресу 3Fh). Байты суммы должны замещать соответствующие байты второго слагаемого. Формат слагаемых выбрать в диапазоне 6-8 байт.

Код программы с комментариями.

;ADN1.ASM

;СЛОЖЕНИЕ ДВУХ N-БАЙТНЫХ ЧИСЕЛ БЕЗ ЗНАКА

$MOD845

 

CSEG

 

ORG 0000H

MOV R0,#2Fh; загрузка в регистр R0 адреса младшего байта первого слагаемого

MOV R1,#3Fh; загрузка в регистр R1 адреса младшего байта второго слагаемого

MOV R2,#08h; счетчик цикла

CLR C; сброс бита переноса

LOOP: MOV A,@R0; в А идет содержимое регистра РПД с адресом, находящимся в R0

ADDC A,@R1; A<=[A]+[@R1]+[C]

MOV @R1,A;

DEC R0; декремент R0

DEC R1;

DJNZ R2,LOOP; проверка конца цикла

RET;

END

 

 

Результаты работы программы.

 

 

Исходные данные

 

 

 

Шаг первый: Команда MOV R0,#2FH (двухбайтная команда занимает два адреса 0000h-КОП-78h и 0001h-68h, второй байт команды – адрес младшего байта первого слагаемого, который в результате выполнения программы записывается в регистр R0 РПД).

 

 

Шаг второй: Команда MOV R1,#3FH. Выполняется аналогично предыдущей, только второй байт команды – адрес младшего байта второго слагаемого.

 

Шаг третий: Команда MOV R2,#08H. Устанавливаем счетчик цикла.

Шаг четвертый: Команда CLR C сбрасывает бит С, т.е. в окне Flags устанавливается СY=0.

 

Шаг пятый:

Команда MOV A,@R0. В аккумулятор идет содержимое регистра РПД с адресом, находящимся в R0, т.е. младший байт первого слагаемого – АА (в окне Registers Acc=AA).

Шаг шестой: Команда ADDC A,@R1. A<=[A]+[@R1]+[C].

Шаг седьмой: Команда MOV @R1,A. Выполняется пересылка данных из аккумулятора в регистр R1, который выбран в качестве регистра косвенного адреса. В РПД по адресу 2F устанавливается сумма 6Dh, что соответствует полученным нами результатам. AAh+C3h=6Dh=0110 1101. CY=1, AC=0, P=1.

 

Шаг восьмой: Команда DEC R0 – декремент R0. В окне 8051 Сore R0=2E.

 

Шаг девятый: Аналогично следующая команда DEC R1. R1=3Е.

Шаг десятый: Команда DJNZ R2,0007H – команда проверки конца цикла. R2<=[R2]-1, затем если NZ, то переход на строку 0007H, если Z, то конец цикла.

Цикл 7 закончен.

Цикл 6 закончен.

Цикл 5 закончен

Цикл 4 закончен

Цикл 3 закончен

Цикл 2 закончен

 

Таким образом проходим восемь циклов и результате получаем следующее.

Вывод: Результаты, которые получили мы, соответствуют результатам, полученными симулятором. Программа работает исправно.

 

 

Задача 2. В отличие от задачи 1б байты суммы должны располагаться в соответствующих столбцах строки 40h-4Fh (младший байт по адресу 4Fh).

Код программы.

;ADN2.ASM

;СЛОЖЕНИЯЕ N-БАЙТНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;

$MOD845

CSEG

ORG 000H

ADN:

MOV R0,#2FH; загрузка в регистр R0 адреса младшего байта первого слагаемого

MOV R1,#3FH; загрузка в регистр R1 адреса младшего байта второго слагаемого

MOV R2,#08H; счетчик цикла

MOV 09H,#4FH;загружаем первый регистр в банке первом

CLR C очистка бита переноса

LOOP:

MOV A,@R0; в А идет содержимое регистра РПД с адресом, находящимся в R0

ADDC A,@R1; A<=[A]+[@R1]+[C]

SETB PSW.3; вызов первого банка

MOV @R1,A;

DEC R1; декремент R1

CLR PSW.3; переход в нулевой банк

DEC R0; декремент R0

DEC R1; декремент R1

DJNZ R2, LOOP;проверка цикла программы

RET;

END

 

Результаты работы программы.

Первые 3 команды аналогичны командам в задаче 1.

 

 

Команда MOV 09H,#4FH заменяет команды:

Команда SETB PSW.3 подключает банк 1, устанавливая RS0=1.

Команда MOV R0,#4FH загружает в R0 первого банка адрес младшего байта суммы двух слагаемых – 4F.

Команда CLR PSW.3 устанавливает RS0=0, подключая банк 0.

 

Следующие команды CLR C; MOV A,@R0; ADDC A,@R1 аналогичны таким же командам в задании 1.

Далее команда SETB PSW.3 подключает банк 1.

 

Команда MOV @R1,A пересылает данные из аккумулятора – сумму двух слагаемых - в регистр R1, который выбран в качестве регистра косвенного адреса в РПД по адресу 4F устанавливается 10h.

 

Команда DEC R1 – декремент содержимого регистра R1 первого банка – 4Е.

CLR PSW.3 - очистка RS0 – подключение банка 0.

Команды DEC R0; DEC R1 – декременты содержимого регистров R0 и R1 соответственно нулевого банка.

Результат первого цикла

Результат работы последнего цикла

Вывод: Результаты работы программы. Они соответствуют тем, которые получили мы. Программа работает исправно.

Задача 2с:

Решение задачи 2, оформленное с выделением подпрограммы ADN21.

Код программы:

;ADN2.ASM

;СЛОЖЕНИЯЕ N-БАЙТНЫХ ЧИСЕЛ БЕЗ ЗНАКА

;

$MOD845

CSEG

ORG 000H

ADN:

MOV R0,#2FH;основная программа; загрузка в регистр R0 адреса младшего байта первого слагаемого

MOV R1,#3FH; загрузка в регистр R1 адреса младшего байта второго;слагаемого

MOV R2,#08H; счетчик цикла

MOV 11H,#4FH;загружаем регистр первый в банке втором

CALL ADN21;вызываем подпрограмму

NOP;

ADN21:начало подпрограммы

CLR C;текст подпрограммы

LOOP:

MOV A,@R0; в А идет содержимое регистра РПД с адресом, находящимся в R0

ADDC A,@R1; A<=[A]+[@R1]+[C]

SETB PSW.4;вызов второго банка

MOV @R1,A;работа с первым регистром второго банка;

DEC R1; декремент R1

CLR PSW.4; переход из второго банка в первый

DEC R0; декремент R0

DEC R1; декремент R1

DJNZ R2, LOOP; проверка цикла подпрограммы

RET;

END

Результат работы программы:

Исходные данные

Загружаем регистр первый в банке втором

Вызываем подпрограмму

В аккумулятор идет содержимое регистра РПД с адресом, находящимся в R0

 

В аккумулятор идёт: A<=[A]+[@R1]+[C]

Вызов второго банка

Работа с первым регистром второго банка;

 

Декремент R1 в банке втором

Декремент R0 в банке нулевом

Декремент R1 в банке нулевом

 

Проверка цикла подпрограммы

Цикл первый закончен

Результат работы последнего цикла

Вывод: Результаты, которые получили мы, соответствуют результатам, полученными симулятором. Программа работает исправно.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...