[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
( Оптимизация 9, пробовал и size и speed )
1 #define uchar unsigned char
2 bit SDA;
3 bit shout(uchar buf)
9 {register uchar j;
10 1 for( j = 8; j > 0; j-- )
11 1 {
12 2 SDA=buf ; buf <<= 1;
13 2 //#pragma asm
14 2 // mov a,r7
15 2 // rlc a // set bit from byte
16 2 // mov r7,a
17 2 // mov SDA,c // output bit
18 2 //................
19 2 //#pragma endasm
20 2 } }
*** WARNING C173 IN LINE 20 OF SHOUT.C: missing return-expression
C51 COMPILER V6.23a SHOUT 06/09/2002 10:29:40 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _shout (BEGIN)
; SOURCE LINE # 3
;---- Variable 'buf' assigned to Register 'R7' ----
; SOURCE LINE # 9
; SOURCE LINE # 10
;---- Variable 'j' assigned to Register 'R6' ----
0000 7E08 MOV R6,#08H
0002 ?C0001:
; SOURCE LINE # 11
; SOURCE LINE # 12
0002 EF MOV A,R7
0003 24FF ADD A,#0FFH
0005 9200 R MOV SDA,C
0007 EF MOV A,R7
0008 25E0 ADD A,ACC
000A FF MOV R7,A
; SOURCE LINE # 20
000B DEF5 DJNZ R6,?C0001
000D ?C0004:
000D 22 RET
; FUNCTION _shout (END)
E-mail: info@telesys.ru