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
   284   285   286   287   288   289   290   291   292   293   294