Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ReAl 29 июня 2003 г. 00:10
В ответ на: To All. Ув. коллеги. Большая просьба к пользователям X51, PIC и MSP430. отправлено Bill 28 июня 2003 г. 22:35

Кейл С51 6.20Ж


; char Bits1 (unsigned word)

RSEG ?PR?_Bits1?FOO
_Bits1:
USING 0
; SOURCE LINE # 4
;---- Variable 'word?040' assigned to Register 'R6/R7' ----
; {
; char count = 0;
;---- Variable 'count?041' assigned to Register 'R1' ----
CLR A
MOV R1,A
; if (word)
MOV A,R7
ORL A,R6
JZ ?C0001
?C0004:
; do
; {
; ++count;
INC R1
; }
; while (word &= word - 1);
MOV A,R7
ADD A,#0FFH
MOV R5,A
MOV A,R6
ADDC A,#0FFH
ANL A,R6
MOV R4,A
MOV A,R7
ANL A,R5
MOV R6,AR4
MOV R7,A
ORL A,R4
JNZ ?C0004
?C0001:
; return count;
MOV R7,AR1
; }
?C0005:
RET
; END OF _Bits1

END




MSP430 mspgcc 3.2

/***********************
* Function `Bits1'
***********************/
Bits1:
/* prologue: frame size = 0 */
.L__FrameSize_Bits1=0x0
.L__FrameOffset_Bits1=0x0
/* prologue end (size=0) */
mov r15, r14
mov.b #llo(0), r13
cmp #llo(0), r15
jeq .L2
.L3:
add.b #llo(1), r13
mov r14, r15
add #llo(-1), r15
and r15, r14
jne .L3
.L2:
mov.b r13, r15
sxt r15
ret
/* epilogue: not required */
/* function Bits1 size 12 (11) */



Для AVR не спрашивал :-)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru