📄 _divulong.asm
字号:
;--------------------------------------------------------; File Created by SDCC : FreeWare ANSI-C Compiler; Version 2.3.0 Thu Sep 20 10:57:22 2001;-------------------------------------------------------- .module _divulong ;--------------------------------------------------------; Public variables in this module;-------------------------------------------------------- .globl __divulong_PARM_2 .globl __divulong;--------------------------------------------------------; special function registers;--------------------------------------------------------;--------------------------------------------------------; special function bits ;--------------------------------------------------------;--------------------------------------------------------; internal ram data;-------------------------------------------------------- .area DSEG (DATA);--------------------------------------------------------; overlayable items in internal ram ;-------------------------------------------------------- .area _DUMMY .area OSEG (OVR,DATA)__divulong_sloc0_1_0:: .ds 1__divulong_sloc1_1_0:: .ds 4;--------------------------------------------------------; indirectly addressable internal ram data;-------------------------------------------------------- .area ISEG (DATA);--------------------------------------------------------; bit data;-------------------------------------------------------- .area BSEG (BIT);--------------------------------------------------------; external ram data;-------------------------------------------------------- .area XSEG (XDATA)__divulong_PARM_2:: .ds 4__divulong_a_1_1:: .ds 4__divulong_reste_1_1:: .ds 4__divulong_count_1_1:: .ds 1;--------------------------------------------------------; global & static initialisations;-------------------------------------------------------- .area GSINIT (CODE) .area GSFINAL (CODE) .area GSINIT (CODE);--------------------------------------------------------; Home;-------------------------------------------------------- .area HOME (CODE) .area CSEG (CODE);--------------------------------------------------------; code;-------------------------------------------------------- .area CSEG (CODE);------------------------------------------------------------;Allocation info for local variables in function '_divulong';------------------------------------------------------------;b Allocated to in memory with name '__divulong_PARM_2';a Allocated to in memory with name '__divulong_a_1_1';reste Allocated to in memory with name '__divulong_reste_1_1';count Allocated to in memory with name '__divulong_count_1_1';c Allocated to in memory with name '__divulong_c_1_1'; _divulong.c 27; -----------------------------------------; function _divulong; -----------------------------------------__divulong: ar2 = 0x02 ar3 = 0x03 ar4 = 0x04 ar5 = 0x05 ar6 = 0x06 ar7 = 0x07 ar0 = 0x00 ar1 = 0x01; _divulong.c 48 push acc push b push dph push dpl mov dptr,#__divulong_a_1_1 pop acc movx @dptr,a pop acc inc dptr movx @dptr,a pop acc inc dptr movx @dptr,a pop acc inc dptr movx @dptr,a; _divulong.c 29; Peephole 227 replaced inefficient 32 bit clear mov dptr,#__divulong_reste_1_1 clr a movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; _divulong.c 30; Peephole 231 removed redundant mov to dptr mov dptr,#__divulong_count_1_1 mov a,#0x20 movx @dptr,a; _divulong.c 33 mov dptr,#__divulong_PARM_2 movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a00105$:; _divulong.c 35 mov dptr,#__divulong_a_1_1 movx a,@dptr mov r6,a inc dptr movx a,@dptr mov r7,a inc dptr movx a,@dptr mov r0,a inc dptr movx a,@dptr; Peephole 105 removed redundant mov mov r1,a rl a anl a,#0x01 mov __divulong_sloc0_1_0,a; _divulong.c 36 mov a,r6 add a,acc mov r6,a mov a,r7 rlc a mov r7,a mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a mov dptr,#__divulong_a_1_1 mov a,r6 movx @dptr,a inc dptr mov a,r7 movx @dptr,a inc dptr mov a,r0 movx @dptr,a inc dptr mov a,r1 movx @dptr,a; _divulong.c 37 mov dptr,#__divulong_reste_1_1 movx a,@dptr mov __divulong_sloc1_1_0,a inc dptr movx a,@dptr mov (__divulong_sloc1_1_0 + 1),a inc dptr movx a,@dptr mov (__divulong_sloc1_1_0 + 2),a inc dptr movx a,@dptr mov (__divulong_sloc1_1_0 + 3),a mov a,__divulong_sloc1_1_0 add a,acc mov __divulong_sloc1_1_0,a mov a,(__divulong_sloc1_1_0 + 1) rlc a mov (__divulong_sloc1_1_0 + 1),a mov a,(__divulong_sloc1_1_0 + 2) rlc a mov (__divulong_sloc1_1_0 + 2),a mov a,(__divulong_sloc1_1_0 + 3) rlc a mov (__divulong_sloc1_1_0 + 3),a mov dptr,#__divulong_reste_1_1 mov a,__divulong_sloc1_1_0 movx @dptr,a inc dptr mov a,(__divulong_sloc1_1_0 + 1) movx @dptr,a inc dptr mov a,(__divulong_sloc1_1_0 + 2) movx @dptr,a inc dptr mov a,(__divulong_sloc1_1_0 + 3) movx @dptr,a; _divulong.c 38 mov a,__divulong_sloc0_1_0; Peephole 110 removed ljmp by inverse jump logic jz 00102$00114$:; _divulong.c 39 mov dptr,#__divulong_reste_1_1 mov a,#0x01 orl a,__divulong_sloc1_1_0 movx @dptr,a inc dptr mov a,(__divulong_sloc1_1_0 + 1) movx @dptr,a inc dptr mov a,(__divulong_sloc1_1_0 + 2) movx @dptr,a inc dptr mov a,(__divulong_sloc1_1_0 + 3) movx @dptr,a00102$:; _divulong.c 41 mov dptr,#__divulong_reste_1_1 movx a,@dptr mov __divulong_sloc1_1_0,a inc dptr movx a,@dptr mov (__divulong_sloc1_1_0 + 1),a inc dptr movx a,@dptr mov (__divulong_sloc1_1_0 + 2),a inc dptr movx a,@dptr mov (__divulong_sloc1_1_0 + 3),a clr c mov a,__divulong_sloc1_1_0 subb a,r2 mov a,(__divulong_sloc1_1_0 + 1) subb a,r3 mov a,(__divulong_sloc1_1_0 + 2) subb a,r4 mov a,(__divulong_sloc1_1_0 + 3) subb a,r5; Peephole 132 changed ljmp to sjmp; Peephole 160 removed sjmp by inverse jump logic jc 00106$00115$:; _divulong.c 42 mov dptr,#__divulong_reste_1_1 clr c mov a,__divulong_sloc1_1_0 subb a,r2 movx @dptr,a mov a,(__divulong_sloc1_1_0 + 1) subb a,r3 inc dptr movx @dptr,a mov a,(__divulong_sloc1_1_0 + 2) subb a,r4 inc dptr movx @dptr,a mov a,(__divulong_sloc1_1_0 + 3) subb a,r5 inc dptr movx @dptr,a; _divulong.c 44 mov dptr,#__divulong_a_1_1 mov a,#0x01 orl a,r6 movx @dptr,a inc dptr mov a,r7 movx @dptr,a inc dptr mov a,r0 movx @dptr,a inc dptr mov a,r1 movx @dptr,a00106$:; _divulong.c 46 mov dptr,#__divulong_count_1_1 movx a,@dptr dec a; Peephole 100 removed redundant mov mov r6,a mov dptr,#__divulong_count_1_1 movx @dptr,a mov a,r6 jz 00116$ ljmp 00105$00116$:; _divulong.c 48 mov dptr,#__divulong_a_1_1 movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr; Peephole 191 removed redundant mov mov r5,a mov dpl,r2 mov dph,r3 mov b,r400108$: ret .area CSEG (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -