Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Основные результаты разработки

Задание | Введение | Структурная схема МПС | Структура памяти и распределения данных | Схема алгоритма вычисления выражения | Схема алгоритма выявления переполнения и деления на 4 и регистровая модель этой операции |


Читайте также:
  1. I. ОСНОВНЫЕ ЦЕЛИ ПАРТИИ
  2. I. Характеристика состояния сферы создания и использования информационных и телекоммуникационных технологий в Российской Федерации, прогноз ее развития и основные проблемы
  3. II. Основные задачи ФСБ России
  4. II. ОСНОВНЫЕ ИДЕИ И ВЫВОДЫ ДИССЕРТАЦИИ
  5. II. Основные принципы и ошибки инвестирования
  6. II. ОСНОВНЫЕ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ
  7. II. Основные цели и задачи Программы с указанием сроков и этапов ее реализации, а также целевые индикаторы и показатели, отражающие ход ее выполнения

1 Аппаратурные затраты: на разработку МПС на базе МП К1810ВМ86 было затрачено 17 микросхем.

2 Программа заняла в памяти 155 байт.

3 Время выполнения программы (1 проход): 354 такта.

 

Расчёт времени выполнение программы:

Мнемоника Вид адресации Число тактов на выполнение команды
mov dx,ax Регистровая  
mov di,ax Регистровая  
mov xn,ax Прямая  
mov ax,xn Прямая  
cwd -  
add ax,ax Регистровая  
adc dx,dx Регистровая  
mov bx,ax Регистровая  
mov bp,ax Регистровая  
sub bx,dx Регистровая  
sbb bp,dx Регистровая  
cmp ax,R1ML Непосредственная  
sbb dx,R1CT Непосредственная  
jns M2 Относительная  
js M3 Относительная  
jmp M4 Прямая  
mov yn,7FFFh Прямая 10+EA = 10+6 = 16
mov yn,ax Прямая  
mov ax,8000h Непосредственная  
mov ah,4ch Непосредственная  
int 21h -  
idiv si Регистровая  

 

Отладка программы

1) При Xn > 0, Xn = 1016

Xn        
Xn-1        
Xn-2        
Xn-3        
Yn        

 

2) При Xn < 0, Xn = -1016

Xn FFF0 FFF0 FFF0 FFF0
Xn-1   FFF0 FFF0 FFF0
Xn-2     FFF0 FFF0
Xn-3       FFF0
Yn FFDC FFE8 FFFC FFF0

 

3) При возникновении положительного переполнения Xn = Xmax = 215-1 = 7FFF16

Xn 7FFF 7FFF 7FFF 7FFF
Xn-1   7FFF 7FFF 7FFF
Xn-2     7FFF 7FFF
Xn-3       7FFF
Yn 7FFF 7FFF 1FFF 7FFF

 

4) При возникновении отрицательного переполнения Xn = Xmax = -215 = 800016

Xn        
Xn-1        
Xn-2        
Xn-3        
Yn     E000  

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

Turbo Assembler Version 4.1 07/05/11 21:18:33 Page 1

progr6.asm

 

1;Программа вычисления Yn=(9*Xn-3*Xn_1-5*Xn_2+3*Xn_3)/4 ст. Степанова Наталья Викторовна

2 0000.MODEL small;модель памяти small

3 0000.STACK 64;модель стека 64

4 0000.DATA;начало сегмента данных

5 org 500h

6 0500 0000 XN dw 0;Резервирование места в памяти

7 0502 0000 XN1 dw 0;для переменных

8 0504 0000 XN2 dw 0;Xn, Xn_1, Xn_2

9 0506 0000 XN3 dw 0;Xn_3 и

10 0508 0000 YN dw 0;результата Yn

12;******************************************************************

14;Константы для деления и выявления переполнения

15 =0004 K EQU 4;Делитель

16 =FFFC R1ML EQU 0FFFCh;константе R1ML присвоить значение мл. части

17;4*(+Ymax)

18 =0001 R1CT EQU 0001h;константе R1CT присвоить значение ст. части

19;4*(+Ymax)

20 =0000 R2ML EQU 0000h;константе R2ML присвоить значение мл. части

21;4*(-Ymax)

22 =FFFE R2CT EQU 0FFFEh;константе R2CT присвоить значение ст. части

23;4*(-Ymax)

25;******************************************************************

27 050A.CODE;начало сегмента кодов

28 0000 FILTP proc;начало процедуры с именем FILTP

29 0000 B8 0000s mov ax,@data;перемещение указателя ds на

30 0003 8E D8 mov ds,ax;сегмент данных

32;******************************************************************

34;Сброс очереди Xn,Xn-1,Xn-2,Xn-3,Y в нуль

35 0005 2B C0 sub ax,ax;сброс аккумулятора ax в нуль

36 0007 A3 0500r mov xn,ax;сброс xn в нуль

37 000A A3 0502r mov xn1,ax;сброс xn1 в нуль

38 000D A3 0504r mov xn2,ax;сброс xn2 в нуль

39 0010 A3 0506r mov xn3,ax;сброс xn3 в нуль

40 0013 A3 0508r mov yn,ax;сброс yn в нуль

42;******************************************************************

44;Вычисление w1=9*xn

45 0016 M1:

46 0016 A1 0500r mov ax,xn;запись xn в аккумулятор ax

47 0019 99 cwd;расширение ax в dx, т.е. xn в формате двойного слова

48 001A 8B F2 mov si,dx;сохранение xn в si:di

49 001C 8B F8 mov di,ax;

50 001E 03 C0 add ax,ax;вычисление 2*xn (xn+xn)

51 0020 13 D2 adc dx,dx;

52 0022 03 C0 add ax,ax;вычисление 4*xn (2*xn+2*xn)

53 0024 13 D2 adc dx,dx;

54 0026 03 C0 add ax,ax;вычисление 8*xn (4*xn+4*xn)

55 0028 13 D2 adc dx,dx;

56 002A 03 C7 add ax,di;вычисление 9*xn (8*xn+xn)

57 002C 13 D6 adc dx,si;

 

Turbo Assembler Version 4.1 07/05/11 21:18:33 Page 2

progr6.asm

 

58 002E 8B D8 mov bx,ax;сохранение w1 в bp:bx

59 0030 8B EA mov bp,dx;

61;******************************************************************

63;Вычисление w2=w1-3*xn1

64 0032 A1 0502r mov ax,xn1;запись xn1 в аккумулятор ax

65 0035 99 cwd;расширение ax в dx, т.е. xn1 в формате двойного слова

66 0036 8B F2 mov si,dx;сохранение xn1 в si:di

67 0038 8B F8 mov di,ax;

68 003A 03 C0 add ax,ax;вычисление 2*xn1 (xn1+xn1)

69 003C 13 D2 adc dx,dx;

70 003E 03 C7 add ax,di;вычисление 3*xn1 (2*xn1+xn1)

71 0040 13 D6 adc dx,si;

72 0042 2B D8 sub bx,ax;вычитание w1-3*xn1 и сохранение w2 в bp:bx

73 0044 1B EA sbb bp,dx;

75;******************************************************************

77;Вычисление w3=w2-5*xn2

78 0046 A1 0504r mov ax,xn2;запись xn2 в аккумулятор ax

79 0049 99 cwd;расширение ax в dx, т.е. xn2 в формате двойного слова

80 004A 8B F2 mov si,dx;сохранение xn2 в si:di

81 004C 8B F8 mov di,ax;

82 004E 03 C0 add ax,ax;вычисление 2*xn2 (xn2+xn2)

83 0050 13 D2 adc dx,dx;

84 0052 03 C0 add ax,ax;вычисление 4*xn2 (2*xn2+2*xn2)

85 0054 13 D2 adc dx,dx;

86 0056 03 C7 add ax,di;вычисление 5*xn2 (4*xn2+xn2)

87 0058 13 D6 adc dx,si;

88 005A 2B D8 sub bx,ax;вычитание w2-5*xn2 и сохранение w3 в bp:bx

89 005C 1B EA sbb bp,dx;

91;******************************************************************

93;Вычисление w4=w3+3*xn3

94 005E A1 0506r mov ax,xn3;запись xn3 в аккумулятор ax

95 0061 99 cwd;расширение ax в dx, т.е. xn3 в формате двойного слова

96 0062 8B F2 mov si,dx;сохранение xn3 в si:di

97 0064 8B F8 mov di,ax;

98 0066 03 C0 add ax,ax;вычисление 2*xn3 (xn3+xn3)

99 0068 13 D2 adc dx,dx;

100 006A 03 C7 add ax,di;вычисление 3*xn3 (2*xn3+xn3)

101 006C 13 D6 adc dx,si;

102 006E 03 D8 add bx,ax;сложение w3+3*xn3 и сохранение w4 в bp:bx

103 0070 13 EA adc bp,dx;

105;******************************************************************

107;Выявление переполнения

108 0072 8B C3 mov ax,bx;запись w4 в dx:ax в

109 0074 8B D5 mov dx,bp;формате двойного слова

110 0076 BE 0004 mov si,K;запись K в si

112 0079 3D FFFC cmp ax,R1ML;сравнение ax с R1ML (формируется заём)

113 007C 83 DA 01 sbb dx,R1CT;сравнение dx с R1CT (вычитается заём)

114 007F 79 11 jns M2;переход на метку M2, если w4>4*(+Ymax)

 

Turbo Assembler Version 4.1 07/05/11 21:18:33 Page 3

progr6.asm

 

116 0081 8B D5 mov dx,bp;запись ст. части w4 в dx

117 0083 3D 0000 cmp ax,R2ML;сравнение ax с R2ML (формируется заём)

118 0086 83 DA FE sbb dx,R2CT;сравнение ax с R2CT (вычитается заём)

119 0089 78 0D js M3;переход на метку M3, если w4<4*(-Ymax)

121;******************************************************************

123;Деление dx:ax/si

124 008B 8B D5 mov dx,bp;запись ст. части w4 в dx

125 008D F7 FE idiv si;деление на si (частное в ax) dx:ax/si=ax

126 008F EB 0A 90 jmp M4;переход на метку M4

128 0092 M2:

129 0092 B8 7FFF mov ax,7FFFh;yn<(+Ymax)

130 0095 EB 04 90 jmp M4;переход на метку M4

132 0098 M3:

133 0098 B8 8000 mov ax,8000h;yn<(-Ymax)

135 009B M4:

136 009B A3 0508r mov yn,ax;запись результатов в yn

138;******************************************************************

140;Формирование очереди

141 009E A1 0504r mov ax,xn2;перенос xn2 в ax и запись xn2

142 00A1 A3 0506r mov xn3,ax;через ax в xn3

143 00A4 A1 0502r mov ax,xn1;перенос xn1 в ax и запись xn1

144 00A7 A3 0504r mov xn2,ax;через ax в xn2

145 00AA A1 0500r mov ax,xn;перенос xn в ax и запись xn

146 00AD A3 0502r mov xn1,ax;через ax в xn1

147 00B0 E9 FF63 jmp M1;переход на метку M1

149;******************************************************************

151;Окончание программы

152 00B3 B4 4C mov ah,4ch;функция DOS

153 00B5 CD 21 int 21h;выхода из программы

154 00B7 FILTP endp;конец процедуры FILTP

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

 

Turbo Assembler Version 4.1 07/05/11 21:18:33 Page 4

Symbol Table

 

Symbol Name Type Value

 

??DATE Text "07/05/11"

??FILENAME Text "progr6 "

??TIME Text "21:18:33"

??VERSION Number 040A

@32BIT Text 0

@CODE Text _TEXT

@CODESIZE Text 0

@CPU Text 0101H

@CURSEG Text _TEXT

@DATA Text DGROUP

@DATASIZE Text 0

@FILENAME Text PROGR6

@INTERFACE Text 000H

@MODEL Text 2

@STACK Text DGROUP

@WORDSIZE Text 2

FILTP Near _TEXT:0000

K Number 0004

M1 Near _TEXT:0016

M2 Near _TEXT:0092

M3 Near _TEXT:0098

M4 Near _TEXT:009B

R1CT Number 0001

R1ML Number FFFC

R2CT Number FFFE

R2ML Number 0000

XN Word DGROUP:0500

XN1 Word DGROUP:0502

XN2 Word DGROUP:0504

XN3 Word DGROUP:0506

YN Word DGROUP:0508

 

Groups & Segments Bit Size Align Combine Class

 

DGROUP Group

STACK 16 0040 Para Stack STACK

_DATA 16 050A Word Public DATA

_TEXT 16 00B7 Word Public CODE


 

Заключение

В результате выполнения курсовой работы на основе МП К1810ВМ86, работающего в максимальном режиме, произведена разработка микропроцессорной системы, выполняющей функцию цифровой фильтрации.

Построен алгоритм выполнения ЦФ и реализован на языке Assembler. В режиме отладки исследованы особенности ЦФ. Рассчитано время выполнения программы в числе тактов. Представлена функциональная схема полученной МПС.

Разработанная МПС соответствует требованиям задания, в том числе условию минимизации длины программы и времени вычисления.

Список использованной литературы

1 Локтюхин В.Н. «Микропроцессорные системы. Проектирование аппаратных и программных средств: учеб. пособие», Рязан. гос. радиотехн. акад, - Рязань, 1998. – 100с.

2 Локтюхин В.Н. «Микропроцессорные системы. Проектирование процессора и памяти: учеб. пособие», Рязан. гос. радиотехн. ун-т, - Рязань, 2008. – 40с.

3 Локтюхин В.Н. «Архитектура компьютера: учебное пособие: в 2 кн. – Кн.2: Основы программирования на ассемблере IBM PC», Ряз. гос. ун-т им. С.А.Есенина. – Рязань, 2008. – 100 с.

4 Лю Ю. Чжен, Гибсон Г. «Микропроцессоры семейства 8086/8088. Архитектура, программирование и проектирование микрокомпьютерных систем: Пер. с англ.», М.: «Радио и связь», 1987.

5 Нефедов А.В. «Интегральные микросхемы и их зарубежные аналоги», изд. М.:«КУбК-а», тома 2,4,5,11, 1996-2001.

6 «Справочник конденсаторы» под ред. Четверткова И.И., Дьяконова М.Н., М.: «Радио и связь», 1993. – 392с.

7 «Справочник по полупроводниковым диодам» под ред. Николаевского И.Ф., М.: «Связь», 1979. – 432с.

8 «Справочник резисторы» под ред. Четверткова И.И., Терехова В.М., М.: «Радио и связь», 2-е изд., переработанное и дополненное, 1991.

9 Тарабрин Б.В. «Интегральные микросхемы. Справочник», изд.: М. «Радио и связь», 1983. – с.267-269, 310-312, 525-526.

10 Номенклатура и аналоги отечественных микросхем - http://www.radiotexnika.ru/spravochnik/adv/advh10.php

11 Chipinfo – электронные компоненты. Микросхемы отечественные - http://www.chipinfo.ru/dsheets/ic/

 

 


Дата добавления: 2015-08-18; просмотров: 46 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Разработка программы вычисления выражения| Введение

mybiblioteka.su - 2015-2024 год. (0.021 сек.)