Page 289 - Introduction to Microcontrollers Architecture, Programming, and Interfacing of The Motorola 68HC12
P. 289
266 Chapter 9 Implementation of C Procedures
unsigned char guc; int gsi;
main{){ char Isc; unsigned int lui;
guc = Isc > -3; Isc = lui > 5; lui = gsi >= 0;
gsi = lui >= 0; gsi = Isc — 0; Isc = (gsi & 4) == 0;
1
a. A C Program
5: guc = Isc > -3; Isc = lui > 5;
0000095B A6AD LDAA 3,-SP
0000095D 81FD CMPA #253
0000095F 2E02 BGT *+4 ;abs = 0963
00000961 87 CLRA
00000962 8F8601 CPS #34305
00000965 7A0800 STAA $0800
00000968 EC81 LDD 1,SP
0000096A 8C0005 CPD #5
0000096D 2202 BHI *+4 ;abs = 0971
0000096F 87 CLRA
00000970 8F8601 CPS #34305
00000973 6A80 STAA 0,SP
7: lui = gsi >= 0;
00000975 FC0801 LDD $0801
00000978 2A02 BPL *+4 ;abs = 097C
0000097A C7 CLRB
0000097B 8FC601 CPS #50689
0000097E 87 CLRA
0000097F 6C81 STD 1,SP
8s gsi = lui >= 0;
00000981 C601 LDAB #1
00000983 87 CLRA
00000984 7C0801 STD $0801
9: gsi = Isc == 0;
00000987 A680 LDAA 0,SP
00000989 2702 BEQ *+4 ,-abs = 098D
0000098B C7 CLRB
0000098C 8FC601 CPS #50689
0000098F 87 CLRA
00000990 7C0801 STD $0801
10: Isc = (gsi & 4) == 0;
00000993 1F08020402 BRCLR $0802,#4,*+7 ;abs = 099A
00000998 87 CLRA
00000999 8F8601 CPS #34305
0000099C 6AB2 STAA 3,SP+
b. Assembly Language Generated by the body of Part (a)
Figure 9.6. A Program with Boolean Operators