📄 gets.asm
字号:
;--------------------------------------------------------; File Created by SDCC : FreeWare ANSI-C Compiler; Version 2.3.0 Thu Sep 20 10:57:31 2001;-------------------------------------------------------- .module gets ;--------------------------------------------------------; Public variables in this module;-------------------------------------------------------- .globl _gets;--------------------------------------------------------; special function registers;--------------------------------------------------------;--------------------------------------------------------; special function bits ;--------------------------------------------------------;--------------------------------------------------------; internal ram data;-------------------------------------------------------- .area DSEG (DATA);--------------------------------------------------------; overlayable items in internal ram ;-------------------------------------------------------- .area OSEG (OVR,DATA);--------------------------------------------------------; indirectly addressable internal ram data;-------------------------------------------------------- .area ISEG (DATA);--------------------------------------------------------; bit data;-------------------------------------------------------- .area BSEG (BIT);--------------------------------------------------------; external ram data;-------------------------------------------------------- .area XSEG (XDATA)_gets_s_1_1:: .ds 3_gets_count_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 'gets';------------------------------------------------------------;s Allocated to in memory with name '_gets_s_1_1';c Allocated to in memory with name '_gets_c_1_1';count Allocated to in memory with name '_gets_count_1_1'; gets.c 3; -----------------------------------------; function gets; -----------------------------------------_gets: ar2 = 0x02 ar3 = 0x03 ar4 = 0x04 ar5 = 0x05 ar6 = 0x06 ar7 = 0x07 ar0 = 0x00 ar1 = 0x01; gets.c 0 push b push dph push dpl mov dptr,#_gets_s_1_1 pop acc movx @dptr,a pop acc inc dptr movx @dptr,a pop acc inc dptr movx @dptr,a; gets.c 5; Peephole 229 replaced inefficient 16 bit clear mov dptr,#_gets_count_1_1 clr a movx @dptr,a inc dptr movx @dptr,a mov dptr,#_gets_count_1_1; gets.c 700109$:; gets.c 8 lcall _getchar mov r2,dpl; gets.c 9 cjne r2,#0x08,00118$; Peephole 132 changed ljmp to sjmp sjmp 00103$00118$: cjne r2,#0x0A,00119$ ljmp 00104$00119$: cjne r2,#0x0D,00120$ ljmp 00104$00120$: ljmp 00106$; gets.c 1800103$:; gets.c 11 mov dptr,#_gets_count_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr; Peephole 135 removed redundant mov mov r4,a orl a,r3; Peephole 110 removed ljmp by inverse jump logic jz 00109$00121$:; gets.c 12 mov dpl,#0x08 push ar2 push ar3 push ar4 lcall _putchar pop ar4 pop ar3 pop ar2; gets.c 13 mov dpl,#0x20 push ar2 push ar3 push ar4 lcall _putchar pop ar4 pop ar3 pop ar2; gets.c 14 mov dpl,#0x08 push ar2 push ar3 push ar4 lcall _putchar pop ar4 pop ar3 pop ar2; gets.c 15 mov dptr,#_gets_s_1_1 movx a,@dptr mov r5,a inc dptr movx a,@dptr mov r6,a inc dptr movx a,@dptr mov r7,a dec r5 cjne r5,#0xff,00122$ dec r600122$: mov dptr,#_gets_s_1_1 mov a,r5 movx @dptr,a inc dptr mov a,r6 movx @dptr,a inc dptr mov a,r7 movx @dptr,a; gets.c 16 dec r3 cjne r3,#0xff,00123$ dec r400123$: mov dptr,#_gets_count_1_1 mov a,r3 movx @dptr,a inc dptr mov a,r4 movx @dptr,a; gets.c 18 ljmp 00109$; gets.c 2100104$: mov dpl,#0x0D push ar2 lcall _putchar pop ar2; gets.c 22 mov dpl,#0x0A push ar2 lcall _putchar pop ar2; gets.c 23 mov dptr,#_gets_s_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a mov dpl,r3 mov dph,r4 mov b,r5; Peephole 180 changed mov to clr clr a lcall __gptrput; gets.c 24 mov dpl,r3 mov dph,r4 mov b,r5; gets.c 26; Peephole 132 changed ljmp to sjmp sjmp 00111$00106$: mov dptr,#_gets_s_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov r5,a mov dpl,r3 mov dph,r4 mov b,r5 mov a,r2 lcall __gptrput mov dptr,#_gets_s_1_1 mov a,#0x01 add a,r3 movx @dptr,a; Peephole 180 changed mov to clr clr a addc a,r4 inc dptr movx @dptr,a inc dptr mov a,r5 movx @dptr,a; gets.c 27 mov dptr,#_gets_count_1_1 movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a mov dptr,#_gets_count_1_1 mov a,#0x01 add a,r3 movx @dptr,a; Peephole 180 changed mov to clr clr a addc a,r4 inc dptr movx @dptr,a; gets.c 28 mov dpl,r2 lcall _putchar; gets.c 30 ljmp 00109$00111$: ret .area CSEG (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -