На сайте
roboforum.ruТехнический форум по робототехнике. |
|
|
;**********************************************************************
;1. Текст программы mpy8u_c умножения 8-и разрядных целых беззнаковых ;чисел, оптимизированной с точки зрения кода.
;**********************************************************************
;*****Использование регистров
.def mc8u =r16 ;множимое
.def mp8u =r17 ;множитель
.def m8uL =r17 ;младший байт результата
.def m8uH =r18 ;старший байт результата
.def mcnt8u =r19 ;счетчик цикла
;*****
mpy8u_c: clr m8uH ;очистить старший байт результата
ldi mcnt8u,8 ;инициализировать счетчик цикла
lsr mp8u ;cдвинуть вправо множитель
m8u_1: brcc m8u_2 ;переход, если С=0
add m8uH,mc8u ;прибавить множимое к старшему
;байту результата
m8u_2: ror m8uH ;сдвинуть вправо старший байт
;результата
ror m8uL ; сдвинуть вправо младший
;байт результата и множитель
dec mcnt8u ;уменьшить на 1 счетчик цикла
brne m8u_1 ;переход, если счетчик цикла еще
;не равен 0
ret
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11