gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 1 LOC OBJECT CODE LINE SOURCE TEXT VALUE 00001 ;-------------------------------------------------------- 00002 ; File Created by SDCC : FreeWare ANSI-C Compiler 00003 ; Version 2.2.2 Wed Jan 10 01:09:12 2001 00004 00005 ;-------------------------------------------------------- 00006 ; PIC port for the 14-bit core 00007 ;-------------------------------------------------------- 00008 ; .module add 00009 list p=16c84 000000 3FFB 00010 __config _wdt_off 00011 00001 00002 ;; 00003 ;; Include file for the p16c84 00004 ;; 00005 00006 ;----- register files------------------------------------------------------ 00007 00000000 00008 indf equ 0x0 00000001 00009 tmr0 equ 0x1 00000002 00010 pcl equ 0x2 00000003 00011 status equ 0x3 00000004 00012 fsr equ 0x4 00000005 00013 porta equ 0x5 00000006 00014 portb equ 0x6 00015 00000008 00016 eedata equ 0x8 00000009 00017 eeadr equ 0x9 0000000A 00018 pclath equ 0xa 0000000B 00019 intcon equ 0xb 00020 00000081 00021 option_reg equ 0x81 00000085 00022 trisa equ 0x85 00000086 00023 trisb equ 0x86 00000088 00024 eecon1 equ 0x88 00000089 00025 eecon2 equ 0x89 00026 00027 ;----- status bits -------------------------------------------------------- 00028 00000007 00029 irp equ 7 00000006 00030 rp1 equ 6 00000005 00031 rp0 equ 5 00000004 00032 not_to equ 4 00000004 00033 to equ 4 00000003 00034 not_pd equ 3 00000003 00035 pd equ 3 00000002 00036 z equ 2 00000001 00037 dc equ 1 00000000 00038 c equ 0 00039 00040 ;----- intcon bits -------------------------------------------------------- 00041 00000007 00042 gie equ 7 00000006 00043 eeie equ 6 gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 2 00000005 00044 t0ie equ 5 00000004 00045 inte equ 4 00000003 00046 rbie equ 3 00000002 00047 t0if equ 2 00000001 00048 intf equ 1 00000000 00049 rbif equ 0 00050 00051 ;----- option bits -------------------------------------------------------- 00052 00000007 00053 not_rbpu equ 7 ; rbpu is active low, but it's confusing to 00000007 00054 rbpu equ 7 ; specify this so verbosely. 00000006 00055 intedg equ 6 00000005 00056 t0cs equ 5 00000004 00057 t0se equ 4 00000003 00058 psa equ 3 00000002 00059 ps2 equ 2 00000001 00060 ps1 equ 1 00000000 00061 ps0 equ 0 00062 00063 ;----- eecon1 bits -------------------------------------------------------- 00064 00000004 00065 eeif equ 4 00000003 00066 wrerr equ 3 00000002 00067 wren equ 2 00000001 00068 wr equ 1 00000000 00069 rd equ 0 00070 00071 00072 ; ram definition 00073 00074 __maxram 0xaf 00075 __badram 0x07, 0x30-0x7f, 0x87 00076 00077 ; configuration bits 00078 00003FEF 00079 _cp_on equ 0x3fef 00003FFF 00080 _cp_off equ 0x3fff 00003FFF 00081 _pwrte_on equ 0x3fff 00003FF7 00082 _pwrte_off equ 0x3ff7 00003FFF 00083 _wdt_on equ 0x3fff 00003FFB 00084 _wdt_off equ 0x3ffb 00003FFC 00085 _lp_osc equ 0x3ffc 00003FFD 00086 _xt_osc equ 0x3ffd 00003FFE 00087 _hs_osc equ 0x3ffe 00003FFF 00088 _rc_osc equ 0x3fff 00089 00012 include "p16c84.inc" 00013 ;-------------------------------------------------------- 00014 ; publics variables in this module 00015 ;-------------------------------------------------------- 00016 ; .globl _main 00017 ; .globl _add_bit2uint 00018 ; .globl _add_bit2uchar 00019 ; .globl _add_bits 00020 ; .globl _add_uchar2uchar2 00021 ; .globl _add_uchar2uchar 00022 ; .globl _add_lit2uchar 00023 ; .globl _done gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 3 00024 ; .globl _bit11 00025 ; .globl _bit10 00026 ; .globl _bit9 00027 ; .globl _bit8 00028 ; .globl _bit7 00029 ; .globl _bit6 00030 ; .globl _bit5 00031 ; .globl _bit4 00032 ; .globl _bit3 00033 ; .globl _bit2 00034 ; .globl _bit1 00035 ; .globl _bit0 00036 ; .globl _acharP 00037 ; .globl _achar3 00038 ; .globl _achar2 00039 ; .globl _achar1 00040 ; .globl _achar0 00041 ; .globl _aint1 00042 ; .globl _aint0 00043 ; .globl _dummy 00044 ; .globl _failures 00045 ; .globl _success 00046 ;-------------------------------------------------------- 00047 ; special function registers 00048 ;-------------------------------------------------------- 00049 00050 00051 cblock 0x13 00052 00053 r0x0C 00054 r0x0D 00055 ;-------------------------------------------------------- 00056 ; dpl and dph to emulate the 8051 calling mechanism 00057 ;-------------------------------------------------------- 00058 dph 00059 ;-------------------------------------------------------- 00060 ; special function bits 00061 ;-------------------------------------------------------- 00062 ;-------------------------------------------------------- 00063 ; internal ram data 00064 ;-------------------------------------------------------- 00065 ; .area DSEG (DATA) 00066 _success 00067 _failures 00068 _dummy 00069 _aint0 00070 _aint0_1 00071 _aint1 00072 _aint1_1 00073 _achar0 00074 _achar1 00075 _achar2 00076 _achar3 00077 _acharP 00078 ;-------------------------------------------------------- 00079 ; overlayable items in internal ram 00080 ;-------------------------------------------------------- 00081 ; .area OSEG (OVR,DATA) gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 4 00082 ;-------------------------------------------------------- 00083 ; Stack segment in internal ram 00084 ;-------------------------------------------------------- 00085 ; .area SSEG (DATA) 00086 ;__start__stack: 00087 ; .ds 1 00088 00089 ;-------------------------------------------------------- 00090 ; indirectly addressable internal ram data 00091 ;-------------------------------------------------------- 00092 ; .area ISEG (DATA) 00093 ;-------------------------------------------------------- 00094 ; external ram data 00095 ;-------------------------------------------------------- 00096 ; .area XSEG (XDATA) 00097 endc 00098 ;-------------------------------------------------------- 00099 ; bit data 00100 ;-------------------------------------------------------- 00101 ; .area BSEG (BIT) 00102 cblock 00103 bitfield0 00104 endc 00000110 00105 _bit0 EQU ( (bitfield0<<3)+0) 00000111 00106 _bit1 EQU ( (bitfield0<<3)+1) 00000112 00107 _bit2 EQU ( (bitfield0<<3)+2) 00000113 00108 _bit3 EQU ( (bitfield0<<3)+3) 00000114 00109 _bit4 EQU ( (bitfield0<<3)+4) 00000115 00110 _bit5 EQU ( (bitfield0<<3)+5) 00000116 00111 _bit6 EQU ( (bitfield0<<3)+6) 00000117 00112 _bit7 EQU ( (bitfield0<<3)+7) 00113 cblock 00114 bitfield8 00115 endc 00000118 00116 _bit8 EQU ( (bitfield8<<3)+0) 00000119 00117 _bit9 EQU ( (bitfield8<<3)+1) 0000011A 00118 _bit10 EQU ( (bitfield8<<3)+2) 0000011B 00119 _bit11 EQU ( (bitfield8<<3)+3) 00000000 00120 ORG 0 00121 ;-------------------------------------------------------- 00122 ; interrupt vector 00123 ;-------------------------------------------------------- 00124 ; .area CSEG (CODE) 00125 ;__interrupt_vect: 00126 ; ljmp __sdcc_gsinit_startup 00127 ; reti 00128 ; .ds 7 00129 ; reti 00130 ; .ds 7 00131 ; reti 00132 ; .ds 7 00133 ; reti 00134 ; .ds 7 00135 ; reti 00136 ; .ds 7 00137 ; reti 00138 ; .ds 7 00139 ;-------------------------------------------------------- gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 5 00140 ; global & static initialisations 00141 ;-------------------------------------------------------- 00142 ; .area GSINIT (CODE) 00143 ; .area GSFINAL (CODE) 00144 ; .area GSINIT (CODE) 0000 00145 __sdcc_gsinit_startup: 00146 ; mov sp,#7 00147 ; lcall __sdcc_external_startup 00148 ; mov a,dpl 00149 ; jz __sdcc_init_data 00150 ; ljmp __sdcc_program_startup 00151 ;__sdcc_init_data: 00152 ;G$main$0$0 8477 00153 ; add.c 193 0000 0196 00154 clrf _success 00155 ;G$main$0$0 8477 00156 ; add.c 193 0001 0197 00157 clrf _failures 00158 ;G$main$0$0 8477 00159 ; add.c 193 0002 0198 00160 clrf _dummy 00161 ;G$main$0$0 8477 00162 ; add.c 193 0003 019A 00163 clrf (_aint0 + 1) 0004 0199 00164 clrf _aint0 00165 ;G$main$0$0 8477 00166 ; add.c 193 0005 019C 00167 clrf (_aint1 + 1) 0006 019B 00168 clrf _aint1 00169 ;G$main$0$0 8477 00170 ; add.c 193 0007 019D 00171 clrf _achar0 00172 ;G$main$0$0 8477 00173 ; add.c 193 0008 019E 00174 clrf _achar1 00175 ;G$main$0$0 8477 00176 ; add.c 193 0009 019F 00177 clrf _achar2 00178 ;G$main$0$0 8477 00179 ; add.c 193 000A 01A0 00180 clrf _achar3 00181 ;G$main$0$0 8477 00182 ; add.c 193 000B 01A1 00183 clrf _acharP 00184 ;G$main$0$0 8477 00185 ; add.c 193 000C 1022 00186 bcf (_bit0 >> 3),(_bit0 & 7) 00187 ;G$main$0$0 8477 00188 ; add.c 193 000D 10A2 00189 bcf (_bit1 >> 3),(_bit1 & 7) 00190 ;G$main$0$0 8477 00191 ; add.c 193 000E 1122 00192 bcf (_bit2 >> 3),(_bit2 & 7) 00193 ;G$main$0$0 8477 00194 ; add.c 193 000F 11A2 00195 bcf (_bit3 >> 3),(_bit3 & 7) 00196 ;G$main$0$0 8477 00197 ; add.c 193 gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 6 0010 1222 00198 bcf (_bit4 >> 3),(_bit4 & 7) 00199 ;G$main$0$0 8477 00200 ; add.c 193 0011 12A2 00201 bcf (_bit5 >> 3),(_bit5 & 7) 00202 ;G$main$0$0 8477 00203 ; add.c 193 0012 1322 00204 bcf (_bit6 >> 3),(_bit6 & 7) 00205 ;G$main$0$0 8477 00206 ; add.c 193 0013 13A2 00207 bcf (_bit7 >> 3),(_bit7 & 7) 00208 ;G$main$0$0 8477 00209 ; add.c 193 0014 1023 00210 bcf (_bit8 >> 3),(_bit8 & 7) 00211 ;G$main$0$0 8477 00212 ; add.c 193 0015 10A3 00213 bcf (_bit9 >> 3),(_bit9 & 7) 00214 ;G$main$0$0 8477 00215 ; add.c 193 0016 1123 00216 bcf (_bit10 >> 3),(_bit10 & 7) 00217 ;G$main$0$0 8477 00218 ; add.c 193 0017 11A3 00219 bcf (_bit11 >> 3),(_bit11 & 7) 00220 ; .area GSINIT (CODE) 00221 ; .area GSFINAL (CODE) 00222 ; ljmp __sdcc_program_startup 00223 ;-------------------------------------------------------- 00224 ; code 00225 ;-------------------------------------------------------- 00226 ; .area CSEG (CODE) 0018 00227 __sdcc_program_startup: 0018 20B3 00228 call _main 00229 ; return from main will lock up 0019 2819 00230 goto $ 00231 ;G$done$0$0 8477 00232 ; add.c 40 00233 ; ----------------------------------------- 00234 ; function done 00235 ; ----------------------------------------- 001A 00236 _done: 00237 ; add.c 43 001A 0A98 00238 incf _dummy,f 001B 00239 _00121_DS_: 00240 ; C$add.c$45$1$1 ==. 00241 ; XG$done$0$0 ==. 001B 0008 00242 return 00243 ;G$add_lit2uchar$0$0 8477 00244 ; add.c 47 00245 ; ----------------------------------------- 00246 ; function add_lit2uchar 00247 ; ----------------------------------------- 001C 00248 _add_lit2uchar: 00249 ; add.c 50 001C 3005 00250 movlw 0x5 001D 079D 00251 addwf _achar0,f 00252 ; add.c 52 001E 081D 00253 movf _achar0,w 001F 3A05 00254 xorlw 0x5 00255 ; add.c 53 gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 7 00256 ;peep 4 - test/jump to test/skip 0020 1D03 00257 btfss status,z 0021 0A97 00258 incf _failures,f 0022 00259 _00142_DS_: 00260 ; add.c 55 0022 300A 00261 movlw 0xa 0023 079D 00262 addwf _achar0,f 00263 ; add.c 57 0024 081D 00264 movf _achar0,w 0025 3A0F 00265 xorlw 0xf 00266 ; add.c 58 00267 ;peep 4 - test/jump to test/skip 0026 1D03 00268 btfss status,z 0027 0A97 00269 incf _failures,f 0028 00270 _00144_DS_: 00271 ; add.c 60 0028 0A9D 00272 incf _achar0,f 00273 ; add.c 61 0029 081D 00274 movf _achar0,w 002A 3A10 00275 xorlw 0x10 00276 ; add.c 62 00277 ;peep 4 - test/jump to test/skip 002B 1D03 00278 btfss status,z 002C 0A97 00279 incf _failures,f 002D 00280 _00146_DS_: 002D 3064 00281 movlw 0x64 002E 009E 00282 movwf _achar1 002F 00283 _00151_DS_: 00284 ; add.c 65 002F 0A9D 00285 incf _achar0,f 0030 0A9D 00286 incf _achar0,f 00287 ; peep 2 - decf/mov/skpz to decfsz 0031 0B9E 00288 decfsz _achar1,f 0032 282F 00289 goto _00151_DS_ 0033 3064 00290 movlw 0x64 0034 009E 00291 movwf _achar1 00292 ; add.c 67 0035 081D 00293 movf _achar0,w 0036 3AD8 00294 xorlw 0xd8 00295 ; add.c 68 00296 ;peep 4 - test/jump to test/skip 0037 1D03 00297 btfss status,z 0038 0A97 00298 incf _failures,f 0039 00299 _00152_DS_: 00300 ; C$add.c$70$1$1 ==. 00301 ; XG$add_lit2uchar$0$0 ==. 0039 0008 00302 return 00303 ;G$add_uchar2uchar$0$0 8477 00304 ; add.c 72 00305 ; ----------------------------------------- 00306 ; function add_uchar2uchar 00307 ; ----------------------------------------- 003A 00308 _add_uchar2uchar: 00309 ; add.c 75 003A 081D 00310 movf _achar0,w 003B 079E 00311 addwf _achar1,f 00312 ; add.c 77 003C 081E 00313 movf _achar1,w gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 8 003D 3A10 00314 xorlw 0x10 00315 ; add.c 78 00316 ;peep 4 - test/jump to test/skip 003E 1D03 00317 btfss status,z 003F 0A97 00318 incf _failures,f 0040 00319 _00162_DS_: 0040 3007 00320 movlw 0x07 0041 009F 00321 movwf _achar2 0042 00322 _00167_DS_: 00323 ; add.c 81 0042 081D 00324 movf _achar0,w 0043 079E 00325 addwf _achar1,f 00326 ; peep 2 - decf/mov/skpz to decfsz 0044 0B9F 00327 decfsz _achar2,f 0045 2842 00328 goto _00167_DS_ 0046 3007 00329 movlw 0x07 0047 009F 00330 movwf _achar2 00331 ; add.c 83 0048 081E 00332 movf _achar1,w 0049 3A80 00333 xorlw 0x80 00334 ; add.c 84 00335 ;peep 4 - test/jump to test/skip 004A 1D03 00336 btfss status,z 004B 0A97 00337 incf _failures,f 004C 00338 _00168_DS_: 00339 ; C$add.c$86$1$1 ==. 00340 ; XG$add_uchar2uchar$0$0 ==. 004C 0008 00341 return 00342 ;G$add_uchar2uchar2$0$0 8477 00343 ; add.c 93 00344 ; ----------------------------------------- 00345 ; function add_uchar2uchar2 00346 ; ----------------------------------------- 004D 00347 _add_uchar2uchar2: 00348 ; add.c 97 004D 0A9D 00349 incf _achar0,f 00350 ; add.c 98 004E 0A9D 00351 incf _achar0,f 00352 ; add.c 99 004F 0A9D 00353 incf _achar0,f 0050 0A9D 00354 incf _achar0,f 00355 ; add.c 100 0051 3003 00356 movlw 0x3 0052 079D 00357 addwf _achar0,f 00358 ; add.c 101 0053 081D 00359 movf _achar0,w 0054 3A07 00360 xorlw 0x7 00361 ; add.c 102 00362 ;peep 4 - test/jump to test/skip 0055 1D03 00363 btfss status,z 0056 0A97 00364 incf _failures,f 0057 00365 _00182_DS_: 00366 ; add.c 104 0057 081D 00367 movf _achar0,w 0058 079E 00368 addwf _achar1,f 00369 ; add.c 105 0059 081E 00370 movf _achar1,w 005A 3A27 00371 xorlw 0x27 gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 9 00372 ; add.c 106 00373 ;peep 4 - test/jump to test/skip 005B 1D03 00374 btfss status,z 005C 0A97 00375 incf _failures,f 005D 00376 _00184_DS_: 00377 ; add.c 108 005D 081D 00378 movf _achar0,w 005E 071E 00379 addwf _achar1,w 00380 ; add.c 109 00381 ; peep 3 - redundant move 005F 009F 00382 movwf _achar2 0060 3A2E 00383 xorlw 0x2e 00384 ; add.c 110 00385 ;peep 4 - test/jump to test/skip 0061 1D03 00386 btfss status,z 0062 0A97 00387 incf _failures,f 0063 00388 _00186_DS_: 00389 ; add.c 112 0063 081E 00390 movf _achar1,w 0064 071F 00391 addwf _achar2,w 0065 071D 00392 addwf _achar0,w 00393 ; add.c 113 00394 ; peep 3 - redundant move 0066 00A0 00395 movwf _achar3 0067 3A5C 00396 xorlw 0x5c 00397 ; add.c 114 00398 ;peep 4 - test/jump to test/skip 0068 1D03 00399 btfss status,z 0069 0A97 00400 incf _failures,f 006A 00401 _00189_DS_: 00402 ; C$add.c$116$1$1 ==. 00403 ; XG$add_uchar2uchar2$0$0 ==. 006A 0008 00404 return 00405 ;G$add_bits$0$0 8477 00406 ; add.c 118 00407 ; ----------------------------------------- 00408 ; function add_bits 00409 ; ----------------------------------------- 006B 00410 _add_bits: 00411 ; add.c 121 006B 10A2 00412 bcf (_bit1 >> 3),(_bit1 & 7) 006C 1822 00413 btfsc (_bit0 >> 3),(_bit0 & 7) 006D 14A2 00414 bsf (_bit1 >> 3),(_bit1 & 7) 00415 ; add.c 123 006E 1422 00416 bsf (_bit0 >> 3),(_bit0 & 7) 00417 ; add.c 126 00418 ;peep 5 - test/jump to test/skip 006F 18A2 00419 btfsc (_bit1 >> 3),(_bit1 & 7) 0070 0A97 00420 incf _failures,f 0071 00421 _00202_DS_: 00422 ; add.c 128 0071 3002 00423 movlw (1 << (_bit1 & 7)) ;2827 0072 06A2 00424 xorwf (_bit1>>3),f 00425 ; add.c 130 00426 ;peep 4 - test/jump to test/skip 0073 1CA2 00427 btfss (_bit1 >> 3),(_bit1 & 7) 0074 0A97 00428 incf _failures,f 0075 00429 _00204_DS_: gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 10 00430 ; add.c 132 00431 ; 925 0075 0103 00432 clrw 0076 19A2 00433 btfsc (_bit3 >> 3), (_bit3 & 7) 0077 3A01 00434 xorlw 1 0078 18A2 00435 btfsc (_bit1 >> 3), (_bit1 & 7) 0079 3A01 00436 xorlw 1 00437 ; add.c 133 00438 ; add.c 134 00439 ;peep 5 - test/jump to test/skip 007A 1922 00440 btfsc (_bit2 >> 3),(_bit2 & 7) 007B 0A97 00441 incf _failures,f 007C 00442 _00206_DS_: 00443 ; add.c 136 007C 0103 00444 clrw 007D 1AA2 00445 btfsc (_bit5 >> 3), (_bit5 & 7) 007E 3A01 00446 xorlw 1 007F 1A22 00447 btfsc (_bit4 >> 3), (_bit4 & 7) 0080 3A01 00448 xorlw 1 00449 ; 925 00450 ;bitadd right is bit: _bit6 00451 ;bitadd left is bit: AOP_accumulator_bug 00452 ;bitadd result is bit: AOP_accumulator_bug 0081 1B22 00453 btfsc (_bit6 >> 3), (_bit6 & 7) 0082 3A01 00454 xorlw 1 00455 ; 925 00456 ;bitadd right is bit: _bit7 00457 ;bitadd left is bit: AOP_accumulator_bug 00458 ;bitadd result is bit: AOP_accumulator_bug 0083 1BA2 00459 btfsc (_bit7 >> 3), (_bit7 & 7) 0084 3A01 00460 xorlw 1 0085 11A2 00461 bcf (_bit3 >> 3), (_bit3 & 7) 0086 3A01 00462 xorlw 1 0087 1D03 00463 btfss status,z 0088 15A2 00464 bsf (_bit3 >> 3), (_bit3 & 7) 00465 ; add.c 137 00466 ; add.c 138 00467 ;peep 4 - test/jump to test/skip 0089 1DA2 00468 btfss (_bit3 >> 3),(_bit3 & 7) 008A 0A97 00469 incf _failures,f 008B 00470 _00209_DS_: 00471 ; C$add.c$140$1$1 ==. 00472 ; XG$add_bits$0$0 ==. 008B 0008 00473 return 00474 ;G$add_bit2uchar$0$0 8477 00475 ; add.c 145 00476 ; ----------------------------------------- 00477 ; function add_bit2uchar 00478 ; ----------------------------------------- 008C 00479 _add_bit2uchar: 00480 ; add.c 148 00481 ; 925 00482 ;bitadd right is bit: _bit0 00483 ;bitadd left is bit: _achar0 00484 ;bitadd result is bit: _achar0 008C 1822 00485 btfsc (_bit0 >> 3), (_bit0 & 7) 008D 0A9D 00486 incf _achar0,f 00487 ; add.c 150 gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 11 008E 081D 00488 movf _achar0,w 008F 3A08 00489 xorlw 0x8 00490 ; add.c 151 00491 ;peep 4 - test/jump to test/skip 0090 1D03 00492 btfss status,z 0091 0A97 00493 incf _failures,f 0092 00494 _00222_DS_: 00495 ; add.c 153 00496 ; 925 Warning add.asm 497 : 219 Invalid RAM location specified. 0092 00497 movf _bit0,w 0092 0093 00498 movwf r0x0C 0093 081D 00499 movf _achar0,w 0094 0613 00500 xorwf r0x0C,w 00501 ; add.c 154 00502 ;peep 5 - test/jump to test/skip 0095 1903 00503 btfsc status,z 0096 0A97 00504 incf _failures,f 0097 00505 _00225_DS_: 00506 ; C$add.c$156$1$1 ==. 00507 ; XG$add_bit2uchar$0$0 ==. 0097 0008 00508 return 00509 ;G$add_bit2uint$0$0 8477 00510 ; add.c 158 00511 ; ----------------------------------------- 00512 ; function add_bit2uint 00513 ; ----------------------------------------- 0098 00514 _add_bit2uint: 00515 ; add.c 161 00516 ; *** genCast 8158 0098 0193 00517 clrf r0x0C ; 8304 0099 19A3 00518 btfsc (_bit11 >> 3), (_bit11 & 7) 009A 0A93 00519 incf r0x0C,f 009B 0194 00520 clrf r0x0D 009C 0819 00521 movf _aint0,w 009D 0613 00522 xorwf r0x0C,w 009E 1D03 00523 btfss status,z 009F 28A3 00524 goto _00249_DS_ 00A0 081A 00525 movf (_aint0 + 1),w 00A1 0614 00526 xorwf r0x0D,w 00527 ; add.c 162 00528 ;peep 6 - test/jump to test/skip 00A2 1D03 00529 btfss status,z 00A3 00530 _00249_DS_: 00A3 0A97 00531 incf _failures,f 00A4 00532 _00242_DS_: 00533 ; add.c 164 00534 ; *** genCast 8158 00A4 0193 00535 clrf r0x0C ; 8304 00A5 1822 00536 btfsc (_bit0 >> 3), (_bit0 & 7) 00A6 0A93 00537 incf r0x0C,f 00A7 0194 00538 clrf r0x0D 00A8 0813 00539 movf r0x0C,w 00A9 0799 00540 addwf _aint0,f 00AA 0814 00541 movf r0x0D,w 00AB 1803 00542 btfsc status,c 00AC 0F14 00543 incfsz r0x0D,w 00AD 079A 00544 addwf (_aint0 + 1),f gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 12 00545 ; add.c 165 00AE 0319 00546 decf _aint0,w 00AF 041A 00547 iorwf (_aint0 + 1),w 00548 ; add.c 166 00549 ;peep 4 - test/jump to test/skip 00B0 1D03 00550 btfss status,z 00B1 0A97 00551 incf _failures,f 00B2 00552 _00245_DS_: 00553 ; C$add.c$168$1$1 ==. 00554 ; XG$add_bit2uint$0$0 ==. 00B2 0008 00555 return 00556 ;G$main$0$0 8477 00557 ; add.c 169 00558 ; ----------------------------------------- 00559 ; function main 00560 ; ----------------------------------------- 00B3 00561 _main: 00562 ; add.c 172 00B3 201C 00563 call _add_lit2uchar 00564 ; add.c 174 00B4 3010 00565 movlw 0x10 00B5 009D 00566 movwf _achar0 00567 ; add.c 175 00B6 019E 00568 clrf _achar1 00569 ; add.c 176 00B7 203A 00570 call _add_uchar2uchar 00571 ; add.c 179 00B8 019D 00572 clrf _achar0 00573 ; add.c 180 00B9 3020 00574 movlw 0x20 00BA 009E 00575 movwf _achar1 00576 ; add.c 181 00BB 204D 00577 call _add_uchar2uchar2 00578 ; add.c 183 00BC 206B 00579 call _add_bits 00580 ; add.c 185 00BD 208C 00581 call _add_bit2uchar 00582 ; add.c 186 00BE 2098 00583 call _add_bit2uint 00584 ; add.c 190 00BF 0817 00585 movf _failures,w 00C0 0096 00586 movwf _success 00587 ; add.c 191 00C1 201A 00588 call _done 00C2 00589 _00261_DS_: 00590 ; C$add.c$192$1$1 ==. 00591 ; XG$main$0$0 ==. 00C2 0008 00592 return 00593 ; .area CSEG (CODE) gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 13 SYMBOL TABLE LABEL VALUE _00121_DS_ 0000001B _00142_DS_ 00000022 _00144_DS_ 00000028 _00146_DS_ 0000002D _00151_DS_ 0000002F _00152_DS_ 00000039 _00162_DS_ 00000040 _00167_DS_ 00000042 _00168_DS_ 0000004C _00182_DS_ 00000057 _00184_DS_ 0000005D _00186_DS_ 00000063 _00189_DS_ 0000006A _00202_DS_ 00000071 _00204_DS_ 00000075 _00206_DS_ 0000007C _00209_DS_ 0000008B _00222_DS_ 00000092 _00225_DS_ 00000097 _00242_DS_ 000000A4 _00245_DS_ 000000B2 _00249_DS_ 000000A3 _00261_DS_ 000000C2 __sdcc_gsinit_startup 00000000 __sdcc_program_startup 00000018 _achar0 0000001D _achar1 0000001E _achar2 0000001F _achar3 00000020 _acharP 00000021 _add_bit2uchar 0000008C _add_bit2uint 00000098 _add_bits 0000006B _add_lit2uchar 0000001C _add_uchar2uchar 0000003A _add_uchar2uchar2 0000004D _aint0 00000019 _aint0_1 0000001A _aint1 0000001B _aint1_1 0000001C _bit0 00000110 _bit1 00000111 _bit10 0000011A _bit11 0000011B _bit2 00000112 _bit3 00000113 _bit4 00000114 _bit5 00000115 _bit6 00000116 _bit7 00000117 _bit8 00000118 _bit9 00000119 _cp_off 00003FFF gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 14 _cp_on 00003FEF _done 0000001A _dummy 00000018 _failures 00000017 _hs_osc 00003FFE _lp_osc 00003FFC _main 000000B3 _pwrte_off 00003FF7 _pwrte_on 00003FFF _rc_osc 00003FFF _success 00000016 _wdt_off 00003FFB _wdt_on 00003FFF _xt_osc 00003FFD bitfield0 00000022 bitfield8 00000023 c 00000000 dc 00000001 dph 00000015 eeadr 00000009 eecon1 00000088 eecon2 00000089 eedata 00000008 eeie 00000006 eeif 00000004 fsr 00000004 gie 00000007 indf 00000000 intcon 0000000B inte 00000004 intedg 00000006 intf 00000001 irp 00000007 not_pd 00000003 not_rbpu 00000007 not_to 00000004 option_reg 00000081 pcl 00000002 pclath 0000000A pd 00000003 porta 00000005 portb 00000006 ps0 00000000 ps1 00000001 ps2 00000002 psa 00000003 r0x0C 00000013 r0x0D 00000014 rbie 00000003 rbif 00000000 rbpu 00000007 rd 00000000 rp0 00000005 rp1 00000006 status 00000003 t0cs 00000005 t0ie 00000005 t0if 00000002 gpasm-0.8.15 alpha add.asm 1-10-2001 01:09:12 PAGE 15 t0se 00000004 tmr0 00000001 to 00000004 trisa 00000085 trisb 00000086 wr 00000001 wren 00000002 wrerr 00000003 z 00000002 Errors : 0 Warnings : 1 reported, 0 suppressed Messages : 0 reported, 0 suppressed