📄 ser_ir.asm
字号:
; genReceive mov r2,dpl; ser_ir.c 83; genLabel 00101$:; genCmpLt mov dptr,#_xcnt; genCmp movx a,@dptr cjne a,#0x0A,00112$00112$:; genIfxJump ; Peephole 108 removed ljmp by inverse jump logic jnc 00101$00113$:; ser_ir.c 85; genAssign ; genAssign: resultIsFar = FALSE clr _ES; ser_ir.c 86; genIfx mov dptr,#_busy movx a,@dptr; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00105$00114$:; ser_ir.c 87; genAssign mov dptr,#_xcnt; genAssign: resultIsFar = FALSE movx a,@dptr mov r3,a; genPlus mov dptr,#_xcnt mov a,#0x01 add a,r3 movx @dptr,a; genPlus mov dptr,#_xpos; Swapped plus args. movx a,@dptr add a,r3; genMod ; DS80C390 div bug: rearranged ops.; Peephole 105 removed redundant mov mov r3,a mov b,#0x0A div ab mov r3,b; genPlus mov a,r3 add a,#_xbuf mov r3,a; Peephole 180 changed mov to clr clr a addc a,#(_xbuf >> 8) mov r4,a; Peephole 180 changed mov to clr clr a addc a,#(_xbuf >> 16) mov r5,a; genPointerSet mov dpl,r3 mov dph,r4 mov dpx,r5 mov a,r2 movx @dptr,a; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00106$00105$:; ser_ir.c 89; genAssign ; genAssign: resultIsFar = FALSE mov _SBUF,r2; ser_ir.c 90; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_busy mov a,#0x01 movx @dptr,a; genLabel 00106$:; ser_ir.c 92; genAssign ; genAssign: resultIsFar = FALSE setb _ES; genLabel 00107$:; genEndFunction ret; ser_ir.c 95; genFunction ; -----------------------------------------; function ser_getc; -----------------------------------------_ser_getc:; ser_ir.c 98; genLabel 00101$:; genIfx mov dptr,#_rcnt movx a,@dptr; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00101$00111$:; ser_ir.c 100; genAssign ; genAssign: resultIsFar = FALSE clr _ES; ser_ir.c 101; genAssign mov dptr,#_rcnt; genAssign: resultIsFar = FALSE movx a,@dptr; genMinus ; Peephole 105 removed redundant mov mov r2,a dec a; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_rcnt movx @dptr,a; ser_ir.c 102; genAssign mov dptr,#_rpos; genAssign: resultIsFar = FALSE movx a,@dptr; genPlus ; Peephole 214 reduced some extra movs mov r2,a add a,#0x01 ; genAssign ; genAssign: resultIsFar = TRUE; Peephole 100 removed redundant mov mov r3,a mov dptr,#_rpos movx @dptr,a; genPlus mov a,r2 add a,#_rbuf mov r2,a; Peephole 180 changed mov to clr clr a addc a,#(_rbuf >> 8) mov r4,a; Peephole 180 changed mov to clr clr a addc a,#(_rbuf >> 16) mov r5,a; genPointerGet ; genFarPointerGet mov dpl,r2 mov dph,r4 mov dpx,r5 movx a,@dptr mov r2,a; genAssign ; genAssign: resultIsFar = TRUE; 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 ; genAssign: resultIsFar = TRUE mov dptr,#_rpos; Peephole 180 changed mov to clr clr a movx @dptr,a; genLabel 00105$:; ser_ir.c 105; genAssign ; genAssign: resultIsFar = FALSE setb _ES; ser_ir.c 106; genRet mov dpl,r2; genLabel 00106$:; genEndFunction ret; ser_ir.c 110; genFunction ; -----------------------------------------; function ser_puts; -----------------------------------------_ser_puts:; ser_ir.c 0; genReceive mov r2,dpl mov r3,dph mov r4,dpx mov r5,b; ser_ir.c 113; genLabel 00103$:; genPointerGet ; genGenPointerGet mov dpl,r2 mov dph,r3 mov dpx,r4 mov b,r5 lcall __gptrget mov r6,a; genPlus inc r2 cjne r2,#0x00,00111$ inc r3 cjne r3,#0x00,00111$ inc r400111$:; did genPlusIncr; genAssign ; genAssign: resultIsFar = TRUE mov ar7,r6; genIfx mov a,r6; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00106$00112$:; ser_ir.c 114; genCmpEq ; gencjneshort mov a,r7; Peephole 132 changed ljmp to sjmp; Peephole 199 optimized misc jump sequence cjne a,#0x0A,00102$;00113$:; Peephole 200 removed redundant sjmp00114$:; genCall push ar2 push ar3 push ar4 push ar5 push ar7 mov dpl,#0x0D lcall _ser_putc pop ar7 pop ar5 pop ar4 pop ar3 pop ar2; genLabel 00102$:; ser_ir.c 115; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r7 lcall _ser_putc pop ar5 pop ar4 pop ar3 pop ar2; genGoto ; genLabel ; Peephole 132 changed ljmp to sjmp sjmp 00103$00106$:; genEndFunction ret; ser_ir.c 119; genFunction ; -----------------------------------------; function ser_gets; -----------------------------------------_ser_gets:; ser_ir.c 130; genReceive mov r2,dpl mov r3,dph mov r4,dpx mov r5,b; ser_ir.c 124; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_ser_gets_pos_1_1; Peephole 180 changed mov to clr clr a movx @dptr,a; genLabel 00105$:; genCmpGt mov dptr,#_ser_gets_PARM_2 mov dps, #0x01 mov dptr, #_ser_gets_pos_1_1 dec dps; genCmp clr c; genCmp #1: 0/0/0 movx a,@dptr; genCmp #2; genCmp #4; genCmp #4.1 xch a, b mov dps, #0x01 movx a,@dptr mov dps, #0x00 xch a, b subb a,b; genIfxJump jnc 00113$ ljmp 00107$00113$:; ser_ir.c 125; genCall push ar2 push ar3 push ar4 push ar5 lcall _ser_getc mov r7,dpl pop ar5 pop ar4 pop ar3 pop ar2; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_ser_gets_c_1_1 mov a,r7 movx @dptr,a; ser_ir.c 126; genCmpEq mov dptr,#_ser_gets_c_1_1; gencjneshort movx a,@dptr cjne a,#0x0D,00114$; Peephole 132 changed ljmp to sjmp sjmp 00105$00114$:; ser_ir.c 127; genAssign mov dptr,#_ser_gets_pos_1_1; genAssign: resultIsFar = FALSE movx a,@dptr mov r0,a; genPlus mov dptr,#_ser_gets_pos_1_1; Swapped plus args. movx a,@dptr add a,#0x01 movx @dptr,a; genPlus mov a,r0 add a,r2 mov r0,a; Peephole 180 changed mov to clr clr a addc a,r3 mov r1,a; Peephole 180 changed mov to clr clr a addc a,r4 mov r7,a mov ar6,r5; genPointerSet mov dpl,r0 mov dph,r1 mov dpx,r7 mov b,r6 mov dps, #0x01 mov dptr, #_ser_gets_c_1_1 movx a,@dptr dec dps lcall __gptrput; ser_ir.c 128; genCmpEq mov dptr,#_ser_gets_c_1_1; gencjneshort movx a,@dptr cjne a,#0x0A,00115$ sjmp 00116$00115$: ljmp 00105$00116$:; genLabel 00107$:; ser_ir.c 130; genPlus mov dptr,#_ser_gets_pos_1_1 movx a,@dptr add a,r2 mov r2,a; Peephole 180 changed mov to clr clr a addc a,r3 mov r3,a; Peephole 180 changed mov to clr clr a addc a,r4 mov r4,a; genPointerSet mov dpl,r2 mov dph,r3 mov dpx,r4 mov b,r5; Peephole 180 changed mov to clr clr a lcall __gptrput; genLabel 00108$:; genEndFunction ret; ser_ir.c 133; genFunction ; -----------------------------------------; function ser_can_xmt; -----------------------------------------_ser_can_xmt:; ser_ir.c 135; genMinus mov dps, #0x01 mov dptr, #_xcnt dec dps clr c mov a,#0x0A xch a, ap inc dps movx a,@dptr xch a, ap subb a,ap mov r2,a mov dps, #0x00; genRet mov dpl,r2; genLabel 00101$:; genEndFunction ret; ser_ir.c 138; genFunction ; -----------------------------------------; function ser_can_rcv; -----------------------------------------_ser_can_rcv:; ser_ir.c 140; genRet mov dps, #0x01 mov dptr, #_rcnt movx a,@dptr mov dpl,a mov dps, #0x00; genLabel 00101$:; genEndFunction ret .area CSEG (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -