В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Пример выполнения аппаратного умножения

Пример прикладной программы аппаратного умножения.

;Умножение без учета знака двух 16- битных операндов
     move 	MCNT, 	#21h 	; CLD=1, SUS=1 (без знака)
     move 	MA, 	#0FFFh 	; MC2:0=0000_0000_0000h
     move 	MB, 	#1001h 	; MC1R:MC0R= 00FF_FFFFh
                                ; MC2:0=0000_00FF_FFFFh
; Умножение с учетом знака двух 16- битных операндов
     move 	MCNT, 	#20h 	; CLD=1, SUS=0 (со знаком)
     move 	MA, 	#F001h 	; MC2:0=0000_0000_0000h
     move 	MB, 	#1001h 	; MC1R:MC0R= FF00_0001h
                                ; MC2:0=FFFF_FF00_0001h
;Умножение с накоплением без учета знака двух 16- битных операндов
                                ; MC2:0=0000_0100_0001h
     move 	MCNT, 	#03h 	; MMAC=1, SUS=1 (без знака)
     move 	MA, 	#0FFFh 	;
     move 	MB, 	#1001h 	;
                                ; MC1R:MC0R=02FF_FFFFh
                                ; MC2:0=0000_0200_0000h
; Умножение с накоплением с учетом знака двух 16- битных операндов
                                ; MC2:0=0000_0100_0001h
     move 	MCNT, 	#02h 	; SUS=0 (со знаком)
     move 	MA, 	#F001h 	;
     move 	MB, 	#1001h 	;
                                ; MC1R:MC0R= FF00_0003h
                                ; MC2:0=0000_0000_0002h
;Умножение с вычитанием без учета знака двух 16- битных операндов
                                ; MC2:0=0000_0100_0001h
     move 	MCNT, 	#07h 	; MMAC=1, MSUB=1, SUS=1 (без знака)
     move 	MA, 	#0FFFh 	;
     move 	MB, 	#1001h 	;
                                ; MC1R:MC0R=FF00_0003h
                                ; MC2:0=0000_0000_0002h
; Умножение с вычитанием с учетом знака двух 16- битных операндов
                                ; MC2:0=0000_0100_0001h
     move 	MCNT, 	#06h 	; MMAC=1, MSUB=1, SUS=0 (со знаком)
     move 	MA, 	#F001h 	;
     move 	MB, 	#1001h 	;
                                ; MC1R:MC0R= 02FF_FFFFh
                                ; MC2:0=0000_0200_0000h
; Умножение с инверсией с учетом знака двух 16- битных операндов
     move 	MCNT, 	#24h 	; CLD=1, MSUB=1, SUS=0 (со знаком)
     move 	MA, 	#F001h 	; MC2:0=0000_0000_0000h
     move 	MB, 	#1001h 	; MC1R:MC0R =00FF_FFFFh
                                ; MC2:0=0000_00FF_FFFFh


<-- Предыдущая страница Оглавление Следующая страница -->