ser_ir.asm
来自「sdcc的win版本.是small device c compiler的意思.支」· 汇编 代码 · 共 863 行 · 第 1/2 页
ASM
863 行
; genIfxJump
; Peephole 108 removed ljmp by inverse jump logic
jnc 00101$
00113$:
; ser_ir.c 85
; genAssign
clr _ES
; ser_ir.c 86
; genAssign
mov dptr,#_busy
movx a,@dptr
; genIfx
; Peephole 105 removed redundant mov
mov r3,a
; genIfxJump
; Peephole 110 removed ljmp by inverse jump logic
jz 00105$
00114$:
; ser_ir.c 87
; genPlus
mov dptr,#_xcnt
; genPlusIncr
mov a,#0x01
add a,r2
movx @dptr,a
; genAssign
mov dptr,#_xpos
movx a,@dptr
; genPlus
; Peephole 214 reduced some extra movs
mov r3,a
add a,r2
mov r2,a
; genMod
; genModOneByte
mov b,#0x0A
mov a,r2
div ab
mov r2,b
; genPlus
mov a,r2
add a,#_xbuf
mov r2,a
; Peephole 180 changed mov to clr
clr a
addc a,#(_xbuf >> 8)
mov r3,a
; genAssign
mov dptr,#_ser_putc_c_1_1
movx a,@dptr
; genPointerSet
; genFarPointerSet
; Peephole 136 removed redundant moves
mov r4,a
mov dpl,r2
mov dph,r3
movx @dptr,a
; Peephole 132 changed ljmp to sjmp
sjmp 00106$
00105$:
; ser_ir.c 89
; genAssign
mov dptr,#_ser_putc_c_1_1
movx a,@dptr
mov _SBUF,a
; ser_ir.c 90
; genAssign
mov dptr,#_busy
mov a,#0x01
movx @dptr,a
00106$:
; ser_ir.c 92
; genAssign
setb _ES
00107$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'ser_getc'
;------------------------------------------------------------
;c Allocated to in memory with name '_ser_getc_c_1_1'
; ser_ir.c 95
; -----------------------------------------
; function ser_getc
; -----------------------------------------
_ser_getc:
; ser_ir.c 98
00101$:
; genAssign
mov dptr,#_rcnt
movx a,@dptr
; genIfx
; Peephole 105 removed redundant mov
mov r2,a
; genIfxJump
; Peephole 110 removed ljmp by inverse jump logic
jz 00101$
00111$:
; ser_ir.c 100
; genAssign
clr _ES
; ser_ir.c 101
; genMinus
; genMinusDec
mov a,r2
dec a
; genAssign
mov dptr,#_rcnt
movx @dptr,a
; ser_ir.c 102
; genAssign
mov dptr,#_rpos
movx a,@dptr
; genPlus
; genPlusIncr
; Peephole 214 reduced some extra movs
mov r2,a
add a,#0x01
; genAssign
; Peephole 100 removed redundant mov
mov r3,a
mov dptr,#_rpos
movx @dptr,a
; genPlus
mov a,r2
add a,#_rbuf
mov dpl,a
; Peephole 180 changed mov to clr
clr a
addc a,#(_rbuf >> 8)
mov dph,a
; genPointerGet
; genFarPointerGet
movx a,@dptr
mov r2,a
; ser_ir.c 103
; genCmpLt
; genCmp
cjne r3,#0x0A,00112$
00112$:
; genIfxJump
; Peephole 132 changed ljmp to sjmp
; Peephole 160 removed sjmp by inverse jump logic
jc 00105$
00113$:
; ser_ir.c 104
; genAssign
mov dptr,#_rpos
; Peephole 180 changed mov to clr
clr a
movx @dptr,a
00105$:
; ser_ir.c 105
; genAssign
setb _ES
; ser_ir.c 106
; genRet
mov dpl,r2
00106$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'ser_puts'
;------------------------------------------------------------
;s Allocated to in memory with name '_ser_puts_s_1_1'
;c Allocated to in memory with name '_ser_puts_c_1_1'
; ser_ir.c 110
; -----------------------------------------
; function ser_puts
; -----------------------------------------
_ser_puts:
; ser_ir.c 0
; genReceive
push b
push dph
push dpl
mov dptr,#_ser_puts_s_1_1
pop acc
movx @dptr,a
pop acc
inc dptr
movx @dptr,a
pop acc
inc dptr
movx @dptr,a
; ser_ir.c 113
00103$:
; genAssign
mov dptr,#_ser_puts_s_1_1
movx a,@dptr
mov r2,a
inc dptr
movx a,@dptr
mov r3,a
inc dptr
movx a,@dptr
mov r4,a
; genPointerGet
; genGenPointerGet
mov dpl,r2
mov dph,r3
mov b,r4
lcall __gptrget
mov r5,a
; genPlus
mov dptr,#_ser_puts_s_1_1
; genPlusIncr
mov a,#0x01
add a,r2
movx @dptr,a
; Peephole 180 changed mov to clr
clr a
addc a,r3
inc dptr
movx @dptr,a
inc dptr
mov a,r4
movx @dptr,a
; genIfx
mov a,r5
; genIfxJump
; Peephole 110 removed ljmp by inverse jump logic
jz 00106$
00111$:
; ser_ir.c 114
; genCmpEq
; Peephole 132 changed ljmp to sjmp
; Peephole 199 optimized misc jump sequence
cjne r5,#0x0A,00102$
;00112$:
; Peephole 200 removed redundant sjmp
00113$:
; genCall
mov dpl,#0x0D
push ar5
lcall _ser_putc
pop ar5
00102$:
; ser_ir.c 115
; genCall
mov dpl,r5
lcall _ser_putc
; Peephole 132 changed ljmp to sjmp
sjmp 00103$
00106$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'ser_gets'
;------------------------------------------------------------
;len Allocated to in memory with name '_ser_gets_PARM_2'
;s Allocated to in memory with name '_ser_gets_s_1_1'
;pos Allocated to in memory with name '_ser_gets_pos_1_1'
;c Allocated to in memory with name '_ser_gets_c_1_1'
; ser_ir.c 119
; -----------------------------------------
; function ser_gets
; -----------------------------------------
_ser_gets:
; ser_ir.c 130
; genReceive
push b
push dph
push dpl
mov dptr,#_ser_gets_s_1_1
pop acc
movx @dptr,a
pop acc
inc dptr
movx @dptr,a
pop acc
inc dptr
movx @dptr,a
; ser_ir.c 124
; genAssign
mov dptr,#_ser_gets_PARM_2
movx a,@dptr
mov r2,a
; genAssign
mov dptr,#_ser_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
; genAssign
mov r6,#0x00
00105$:
; genAssign
mov ar7,r6
; genCmpGt
; genCmp
clr c
mov a,r2
subb a,r6
; genIfxJump
; Peephole 132 changed ljmp to sjmp
; Peephole 160 removed sjmp by inverse jump logic
jc 00107$
00113$:
; ser_ir.c 125
; genCall
push ar2
push ar3
push ar4
push ar5
push ar6
push ar7
lcall _ser_getc
mov r0,dpl
pop ar7
pop ar6
pop ar5
pop ar4
pop ar3
pop ar2
; ser_ir.c 126
; genCmpEq
cjne r0,#0x0D,00114$
; Peephole 132 changed ljmp to sjmp
sjmp 00105$
00114$:
; ser_ir.c 127
; genIpush
push ar2
; genPlus
; genPlusIncr
inc r6
; genPlus
mov a,r7
add a,r3
mov r7,a
; Peephole 180 changed mov to clr
clr a
addc a,r4
mov r1,a
mov ar2,r5
; genPointerSet
; genGenPointerSet
mov dpl,r7
mov dph,r1
mov b,r2
mov a,r0
lcall __gptrput
; ser_ir.c 128
; genCmpEq
cjne r0,#0x0A,00115$
mov a,#0x01
sjmp 00116$
00115$:
clr a
00116$:
; genIpop
pop ar2
; genIfx
; genIfxJump
; Peephole 110 removed ljmp by inverse jump logic
jz 00105$
00117$:
00107$:
; ser_ir.c 130
; genAssign
mov dptr,#_ser_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
; genPlus
mov a,r6
add a,r3
mov r3,a
; Peephole 180 changed mov to clr
clr a
addc a,r4
mov r4,a
; genPointerSet
; genGenPointerSet
mov dpl,r3
mov dph,r4
mov b,r5
; Peephole 180 changed mov to clr
clr a
lcall __gptrput
00108$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'ser_can_xmt'
;------------------------------------------------------------
; ser_ir.c 133
; -----------------------------------------
; function ser_can_xmt
; -----------------------------------------
_ser_can_xmt:
; ser_ir.c 135
; genAssign
mov dptr,#_xcnt
movx a,@dptr
mov r2,a
; genMinus
clr c
mov a,#0x0A
subb a,r2
mov r2,a
; genRet
mov dpl,r2
00101$:
ret
;------------------------------------------------------------
;Allocation info for local variables in function 'ser_can_rcv'
;------------------------------------------------------------
; ser_ir.c 138
; -----------------------------------------
; function ser_can_rcv
; -----------------------------------------
_ser_can_rcv:
; ser_ir.c 140
; genAssign
mov dptr,#_rcnt
movx a,@dptr
mov r2,a
; genRet
mov dpl,r2
00101$:
ret
.area CSEG (CODE)
.area XINIT (CODE)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?