_fsdiv.asm
来自「很少见的源码公开的msc51和z80的c编译器。」· 汇编 代码 · 共 963 行 · 第 1/2 页
ASM
963 行
;--------------------------------------------------------; File Created by SDCC : FreeWare ANSI-C Compiler; Version 2.3.0 Thu Sep 20 10:57:23 2001;-------------------------------------------------------- .module _fsdiv ;--------------------------------------------------------; Public variables in this module;-------------------------------------------------------- .globl ___fsdiv_PARM_2 .globl ___fsdiv;--------------------------------------------------------; special function registers;--------------------------------------------------------;--------------------------------------------------------; special function bits ;--------------------------------------------------------;--------------------------------------------------------; internal ram data;-------------------------------------------------------- .area DSEG (DATA);--------------------------------------------------------; overlayable items in internal ram ;-------------------------------------------------------- .area _DUMMY .area OSEG (OVR,DATA)___fsdiv_sloc0_1_0:: .ds 4;--------------------------------------------------------; indirectly addressable internal ram data;-------------------------------------------------------- .area ISEG (DATA);--------------------------------------------------------; bit data;-------------------------------------------------------- .area BSEG (BIT);--------------------------------------------------------; external ram data;-------------------------------------------------------- .area XSEG (XDATA)___fsdiv_PARM_2:: .ds 4___fsdiv_a1_1_1:: .ds 4___fsdiv_fl1_1_1:: .ds 4___fsdiv_fl2_1_1:: .ds 4___fsdiv_result_1_1:: .ds 4___fsdiv_mask_1_1:: .ds 4___fsdiv_mant1_1_1:: .ds 4___fsdiv_mant2_1_1:: .ds 4___fsdiv_exp_1_1:: .ds 2;--------------------------------------------------------; 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 '__fsdiv';------------------------------------------------------------;a2 Allocated to in memory with name '___fsdiv_PARM_2';a1 Allocated to in memory with name '___fsdiv_a1_1_1';fl1 Allocated to in memory with name '___fsdiv_fl1_1_1';fl2 Allocated to in memory with name '___fsdiv_fl2_1_1';result Allocated to in memory with name '___fsdiv_result_1_1';mask Allocated to in memory with name '___fsdiv_mask_1_1';mant1 Allocated to in memory with name '___fsdiv_mant1_1_1';mant2 Allocated to in memory with name '___fsdiv_mant2_1_1';exp Allocated to in memory with name '___fsdiv_exp_1_1';sign Allocated to in memory with name '___fsdiv_sign_1_1'; _fsdiv.c 73; -----------------------------------------; function __fsdiv; -----------------------------------------___fsdiv: ar2 = 0x02 ar3 = 0x03 ar4 = 0x04 ar5 = 0x05 ar6 = 0x06 ar7 = 0x07 ar0 = 0x00 ar1 = 0x01; _fsdiv.c 138 push acc push b push dph push dpl mov dptr,#___fsdiv_a1_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; _fsdiv.c 82 mov dptr,#___fsdiv_a1_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 mov r5,a mov dptr,#___fsdiv_fl1_1_1 mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a inc dptr mov a,r5 movx @dptr,a; _fsdiv.c 83 mov dptr,#___fsdiv_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,a mov dptr,#___fsdiv_fl2_1_1 mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a inc dptr mov a,r5 movx @dptr,a; _fsdiv.c 86 mov dptr,#___fsdiv_fl1_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 mov r5,a mov ar2,r4 mov a,r5 mov c,acc.7 xch a,r2 rlc a xch a,r2 rlc a xch a,r2 anl a,#0x01 mov r3,a mov r4,#0x00 mov r5,#0x00 mov r3,#0x00 mov r4,#0x00 mov r5,#0x00 mov dptr,#___fsdiv_exp_1_1 mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a; _fsdiv.c 87 mov dptr,#___fsdiv_fl2_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 mov r5,a mov ar2,r4 mov a,r5 mov c,acc.7 xch a,r2 rlc a xch a,r2 rlc a xch a,r2 anl a,#0x01 mov r3,a mov r4,#0x00 mov r5,#0x00 mov r3,#0x00 mov r4,#0x00 mov r5,#0x00 mov dptr,#___fsdiv_exp_1_1 movx a,@dptr mov r6,a inc dptr movx a,@dptr; Peephole 105 removed redundant mov mov r7,a rlc a subb a,acc mov r0,a mov r1,a clr c mov a,r6 subb a,r2 mov r2,a mov a,r7 subb a,r3 mov r3,a mov a,r0 subb a,r4 mov r4,a mov a,r1 subb a,r5 mov r5,a mov dptr,#___fsdiv_exp_1_1 mov a,r2 movx @dptr,a inc dptr mov a,r3 movx @dptr,a; _fsdiv.c 88 mov dptr,#___fsdiv_exp_1_1 movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a mov dptr,#___fsdiv_exp_1_1 mov a,#0x7E add a,r2 movx @dptr,a; Peephole 180 changed mov to clr clr a addc a,r3 inc dptr movx @dptr,a; _fsdiv.c 91 mov dptr,#___fsdiv_fl1_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 105 removed redundant mov mov r5,a rl a anl a,#0x01 mov r2,a mov dptr,#___fsdiv_fl2_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr; Peephole 105 removed redundant mov mov r6,a rl a anl a,#0x01; Peephole 105 removed redundant mov mov r3,a xrl ar2,a; _fsdiv.c 94 mov dptr,#___fsdiv_fl2_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a mov a,r3 orl a,r4 orl a,r5 orl a,r6; Peephole 109 removed ljmp by inverse jump logic jnz 00102$00120$:; _fsdiv.c 96; Peephole 181 used 16 bit load of dptr mov dptr,#0x0000 mov b,#0x80 mov a,#0xBF ljmp 00112$00102$:; _fsdiv.c 99 mov dptr,#___fsdiv_fl1_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a mov a,r3 orl a,r4 orl a,r5 orl a,r6; Peephole 109 removed ljmp by inverse jump logic jnz 00104$00121$:; _fsdiv.c 100; Peephole 3.a changed mov to clr; Peephole 3.b changed mov to clr; Peephole 3.b changed mov to clr clr a mov dpl,a mov dph,a mov b,a ljmp 00112$00104$:; _fsdiv.c 103 mov dptr,#___fsdiv_fl1_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a anl ar5,#0x7F mov r6,#0x00 mov dptr,#___fsdiv_mant1_1_1 mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a mov a,#0x80 orl a,r5 inc dptr movx @dptr,a inc dptr mov a,r6 movx @dptr,a; _fsdiv.c 104 mov dptr,#___fsdiv_fl2_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a anl ar5,#0x7F mov r6,#0x00 mov dptr,#___fsdiv_mant2_1_1 mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a mov a,#0x80 orl a,r5 inc dptr movx @dptr,a inc dptr mov a,r6 movx @dptr,a; _fsdiv.c 107 mov dptr,#___fsdiv_mant2_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a mov dptr,#___fsdiv_mant1_1_1 movx a,@dptr mov ___fsdiv_sloc0_1_0,a inc dptr movx a,@dptr mov (___fsdiv_sloc0_1_0 + 1),a inc dptr movx a,@dptr mov (___fsdiv_sloc0_1_0 + 2),a inc dptr movx a,@dptr mov (___fsdiv_sloc0_1_0 + 3),a clr c mov a,___fsdiv_sloc0_1_0 subb a,r3 mov a,(___fsdiv_sloc0_1_0 + 1) subb a,r4 mov a,(___fsdiv_sloc0_1_0 + 2) subb a,r5 mov a,(___fsdiv_sloc0_1_0 + 3) xrl a,#0x80 mov b,r6 xrl b,#0x80 subb a,b jc 00122$ ljmp 00106$00122$:; _fsdiv.c 109 mov dptr,#___fsdiv_mant1_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a mov a,r3 add a,acc mov r3,a mov a,r4 rlc a mov r4,a
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?