Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
21.02.2014
Размер:
456.8 Кб
Скачать

3. Подпрограмма умножения двух 12-разрядных чисел без знака.

Исходное состояние- С — старшие 8 разрядов первого сомножителя (в старшей тетраде О — младшие 4 раз» ряда первого сомножителя, в млад­шем тетраде D — старшие 4 разряда второго сомножителя); Е — младшие 8 разрядов второго сомножителя. Ко­нечны.! результат: Л. 111. — произве­дение. В—0, сч"рлая тетрада D—О, содержимое С младшей тетрады D и Е ;-е изменяется.

MVI B,00 ROT MOV A,D ROT AX I FO ROT MOV HA ROT MOV A.D ROT SL'B H . RXC \\OV D.A DAD D MOV L, В ADC В MOV А.С RET ПАП Н ROT: MACRO ДОС A LOCAL Q ROT JNC Q ROT DAD D ROT ADC В ROT Q DAD H ROT ADC \ ROT END Л1

Время выполнения — 509 тактоп. Для сравнения заметим, что подпро­грамма умножения двух 10-разряд­ных чисел, описанная в [1], имеет время выполнения, превышающее 1300 тактов, т. е. достигается выиг­рыш более чем в 2 раза.

4. Подпрограмма умножения двух 16-разрядных чисел оез знака.

ROT2 LX! Н,00

ROT2 MOV A.D

JNC Q MOV D.L

INR D ADD A

G- MOV Е,Л ROT1

POP PSVV ROT1

RNC ROT1

DAD В КОТ1

RNC ROT1

INX D ROT1

RET ROT1

ROT1: MACRO JNC Q

LOCAL P DAD В

JNC P ADC D

DAD В Q: MOV D,A

ADC D MOV A E

P: DAD H MV1 E,0

ADC A RAR

END M PUSH PSW

ROT2: MACRO ADD A

LOCAL X DAD H

JNC N ADC A

DAD В ROT2

ADC E ROT2

N1 DAD H !<OT2

ADC A ROT2

END M KOT2

Исходное состояние: ВС — первый сомножитель, DE — второй сомножи­тель. Конечный результат: DE, HL — произведскне, ВС не игмен_яется.

Время выполнения — 6°5 тактоз. Это на 12 % лучше, чем у подпро­граммы, описанной в [3] (781 такт), и почт;: в 3 раза быстрее подпро­граммы умножения 16-разрядных чи­сел [4] (2060 тактов). Текст этой подпрограммы в кодах, размешен­ный начиная с адреса 0800, имеет вид

0800 21 00 0810 09 SA 0820 29 8F 0830 D2 35 0840 IF F5 0850 8В 29 CS60 8F D2 С870 74 08 0880 СУ


00 7А 55 87 D2

29 SF D2 19 08

D2 27 08 09 8А

08 09 8 А 29 8F

87 29 8F D2 4А

ЯР D2 58 08 09

66 08 09 8В 29

09 8В 29 8F D2

Как видно из изложенного, одно­временный сдвиг сомножителя и ре­зультата в системе команд микропро­цессора КР580ИК80А позволяет пи­сать эффективные подпрограммы ум­ножения, которые при сопоставимой длине подпрограммы существенно (примерно в 2—3 раза) быстрее ши­рокоизвестных [1, 2, 4] и значитель­но экономят память (более 200 бант). Телефон для справок: 3-63 31 (г. Сыктывкар).

ЛИТЕРАТУРА

1. А л е к с е н к о А. Г., Г а л л а ы н А. А., Иван ников А. Д. _Про-ектирование радиоэлектронной ап­паратуры на микропроцессорах.— М : Радио и связь. 1984.— 272 с.

2. Григорьев В. Л. Программное обеспечение микропроцессорных систем. М.: Энергоатомпздат, 1983 — 208 с.

3. Бернар Купе. Сверхэффектив­ные программы умножения для

12 08

09 8 А

29 8F

IE 00

08 09

09 8В 29

29 8 F D2

09 DO 13

08 08 09 8А 29 8F D2

51


09 8А 29 SF D2 20 08 29 8F D2 2Е 08 09 8А D2 ЗС 08 09 8А 57 7В 08 09 8В 29 8F D2 8В 29 8F D2 5F 08 8F D2 6D 08 09 8В 7А 08 14 5F Fl DO

44

«Микропроцессорные средства и системы» № 5, 1986

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