1 ;-------------------------------------------------------- 2 ; File Created by SDCC : FreeWare ANSI-C Compiler 3 ; Version 2.1.9Ga Sun Jan 16 17:31:31 2000 4 5 ;-------------------------------------------------------- 6 .module _mulsint 7 ;-------------------------------------------------------- 8 ; publics variables in this module 9 ;-------------------------------------------------------- 10 .globl __mulsint_PARM_2 11 .globl __mulsint 12 ;-------------------------------------------------------- 13 ; special function registers 14 ;-------------------------------------------------------- 15 ;-------------------------------------------------------- 16 ; special function bits 17 ;-------------------------------------------------------- 18 ;-------------------------------------------------------- 19 ; internal ram data 20 ;-------------------------------------------------------- 21 .area DSEG (DATA) 22 ;-------------------------------------------------------- 23 ; overlayable items in internal ram 24 ;-------------------------------------------------------- 25 .area OSEG (OVR,DATA) 26 ;-------------------------------------------------------- 27 ; indirectly addressable internal ram data 28 ;-------------------------------------------------------- 29 .area ISEG (DATA) 30 ;-------------------------------------------------------- 31 ; bit data 32 ;-------------------------------------------------------- 33 .area BSEG (BIT) 34 ;-------------------------------------------------------- 35 ; external ram data 36 ;-------------------------------------------------------- 37 .area XSEG (XDATA) 0000 38 __mulsint_PARM_2: 0000 39 .ds 0x0002 0002 40 __mulsint_a_1_1: 0002 41 .ds 0x0002 42 ;-------------------------------------------------------- 43 ; global & static initialisations 44 ;-------------------------------------------------------- 45 .area GSINIT (CODE) 46 ;-------------------------------------------------------- 47 ; code 48 ;-------------------------------------------------------- 49 .area CSEG (CODE) 0000 50 G$_mulsint$0$0 ==. 51 ; _mulsint.c 26 52 ; ----------------------------------------- 53 ; function _mulsint 54 ; ----------------------------------------- 0000 55 __mulsint: 0002 56 ar2 = 0x02 0003 57 ar3 = 0x03 0004 58 ar4 = 0x04 0005 59 ar5 = 0x05 0006 60 ar6 = 0x06 0007 61 ar7 = 0x07 0000 62 ar0 = 0x00 0001 63 ar1 = 0x01 64 ; _mulsint.c 0 0000 C0 83 65 push dph 0002 C0 82 66 push dpl 0004 90s00r02 67 mov dptr,#__mulsint_a_1_1 0007 D0 E0 68 pop acc 0009 F0 69 movx @dptr,a 000A D0 E0 70 pop acc 000C A3 71 inc dptr 000D F0 72 movx @dptr,a 73 ; _mulsint.c 30 000E 90s00r02 74 mov dptr,#__mulsint_a_1_1 0011 E0 75 movx a,@dptr 0012 FA 76 mov r2,a 0013 A3 77 inc dptr 0014 E0 78 movx a,@dptr 79 ; Peephole 105 removed redundant mov 0015 FB 80 mov r3,a 81 ; Peephole 111 removed ljmp by inverse jump logic 0016 30 E7 09 82 jnb acc.7,00106$ 0019 83 00113$: 0019 C3 84 clr c 001A E4 85 clr a 001B 9A 86 subb a,r2 001C FC 87 mov r4,a 001D E4 88 clr a 001E 9B 89 subb a,r3 001F FD 90 mov r5,a 91 ; Peephole 132 changed ljmp to sjmp 0020 80 04 92 sjmp 00107$ 0022 93 00106$: 0022 8A 04 94 mov ar4,r2 0024 8B 05 95 mov ar5,r3 0026 96 00107$: 0026 8C 02 97 mov ar2,r4 0028 8D 03 98 mov ar3,r5 99 ; _mulsint.c 31 002A 90s00r00 100 mov dptr,#__mulsint_PARM_2 002D E0 101 movx a,@dptr 002E FC 102 mov r4,a 002F A3 103 inc dptr 0030 E0 104 movx a,@dptr 105 ; Peephole 105 removed redundant mov 0031 FD 106 mov r5,a 0032 33 107 rlc a 0033 E4 108 clr a 0034 33 109 rlc a 110 ; Peephole 105 removed redundant mov 0035 FE 111 mov r6,a 112 ; Peephole 110 removed ljmp by inverse jump logic 0036 60 09 113 jz 00108$ 0038 114 00114$: 0038 C3 115 clr c 0039 E4 116 clr a 003A 9C 117 subb a,r4 003B FF 118 mov r7,a 003C E4 119 clr a 003D 9D 120 subb a,r5 003E F8 121 mov r0,a 122 ; Peephole 132 changed ljmp to sjmp 003F 80 04 123 sjmp 00109$ 0041 124 00108$: 0041 8C 07 125 mov ar7,r4 0043 8D 00 126 mov ar0,r5 0045 127 00109$: 0045 90s00r00 128 mov dptr,#__muluint_PARM_2 0048 EF 129 mov a,r7 0049 F0 130 movx @dptr,a 004A A3 131 inc dptr 004B E8 132 mov a,r0 004C F0 133 movx @dptr,a 004D C0 06 134 push ar6 004F 8A 82 135 mov dpl,r2 0051 8B 83 136 mov dph,r3 0053 12s00r00 137 lcall __muluint 0056 AA 82 138 mov r2,dpl 0058 AB 83 139 mov r3,dph 005A D0 06 140 pop ar6 141 ; _mulsint.c 33 005C 90s00r02 142 mov dptr,#__mulsint_a_1_1 005F E0 143 movx a,@dptr 0060 FC 144 mov r4,a 0061 A3 145 inc dptr 0062 E0 146 movx a,@dptr 147 ; Peephole 105 removed redundant mov 0063 FD 148 mov r5,a 0064 33 149 rlc a 0065 E4 150 clr a 0066 33 151 rlc a 0067 FC 152 mov r4,a 0068 EE 153 mov a,r6 0069 65 04 154 xrl a,ar4 155 ; Peephole 110 removed ljmp by inverse jump logic 006B 60 0D 156 jz 00102$ 006D 157 00115$: 158 ; _mulsint.c 34 006D C3 159 clr c 006E E4 160 clr a 006F 9A 161 subb a,r2 0070 FC 162 mov r4,a 0071 E4 163 clr a 0072 9B 164 subb a,r3 0073 FE 165 mov r6,a 0074 8C 82 166 mov dpl,r4 0076 8E 83 167 mov dph,r6 168 ; Peephole 132 changed ljmp to sjmp 0078 80 04 169 sjmp 00104$ 007A 170 00102$: 171 ; _mulsint.c 36 007A 8A 82 172 mov dpl,r2 007C 8B 83 173 mov dph,r3 007E 174 00104$: 007E 175 C$_mulsint.c$37$1$1 ==. 007E 176 XG$_mulsint$0$0 ==. 007E 22 177 ret 178 .area CSEG (CODE)