📄 liveosci.asm
字号:
00131$:; genCmpLt; genCmp cjne r4,#0x08,00141$00141$:; genIfxJump; Peephole 108 removed ljmp by inverse jump logic jnc 00134$00142$:;liveosci.c:263: if(config & (0x80U>>i)) SET_TXD_HIGH();; genRightShift mov b,r4 inc b mov r5,#0x80 mov r6,#0x00 sjmp 00144$00143$: clr c mov a,r6 rrc a mov r6,a mov a,r5 rrc a mov r5,a00144$: djnz b,00143$; genCast mov ar7,r3 mov r0,#0x00; genAnd mov a,r7 anl ar5,a mov a,r0 anl ar6,a; genIfx mov a,r5 orl a,r6; genIfxJump; Peephole 110 removed ljmp by inverse jump logic jz 00110$00145$:; genOr orl _IOA,#0x80;liveosci.c:264: else SET_TXD_LOW();; Peephole 112.b changed ljmp to sjmp sjmp 00116$00110$:; genAssign mov r5,_IOA; genAnd mov a,#0x7F anl a,r5 mov _IOA,a;liveosci.c:267: SET_SCK_HIGH();00116$:; genOr orl _IOA,#0x08;liveosci.c:268: SET_SCK_LOW();; genAssign mov r5,_IOA; genAnd mov a,#0xF7 anl a,r5 mov _IOA,a;liveosci.c:258: for(i=0; i<8; i++); genPlus; genPlusIncr inc r4; Peephole 112.b changed ljmp to sjmp sjmp 00131$00134$:;liveosci.c:272: if(keep_rck_high); genIfx mov a,r2; genIfxJump; Peephole 110 removed ljmp by inverse jump logic jz 00129$00146$:;liveosci.c:274: SET_CKGEN_INT1_SREG_RCK_HIGH();; genOr orl _IOA,#0x02; Peephole 112.b changed ljmp to sjmp sjmp 00135$00129$:;liveosci.c:282: uint8 tmp=IOA;; genAssign mov r2,_IOA;liveosci.c:283: SET_CKGEN_INT1_SREG_RCK_HIGH();; genOr orl _IOA,#0x02;liveosci.c:284: IOA=tmp;; genAssign mov _IOA,r200135$: ret;------------------------------------------------------------;Allocation info for local variables in function 'SetClockSpeed';------------------------------------------------------------;ckspeed Allocated to registers r2 ;rv Allocated to registers ;j Allocated to registers ;------------------------------------------------------------;liveosci.c:292: static uint8 SetClockSpeed(uint8 ckspeed); -----------------------------------------; function SetClockSpeed; -----------------------------------------_SetClockSpeed:; genReceive mov r2,dpl;liveosci.c:303: WriteIOModuleConfig(/*keep_rck_high=*/1);; genCall mov dpl,#0x01 push ar2 lcall _WriteIOModuleConfig pop ar2;liveosci.c:317: for(j=0; j<100; j++); genAssign mov r3,#0x6400106$:;liveosci.c:318: { NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; }; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genInline nop; ; genDjnz; Peephole 112.b changed ljmp to sjmp; Peephole 205 optimized misc jump sequence djnz r3,00106$00111$:00112$:;liveosci.c:317: for(j=0; j<100; j++);liveosci.c:320: CkGen_SerialIOByte(CMD_CKGEN_SET_CLOCK_SPEED);; genCall mov dpl,#0x01 push ar2 lcall _CkGen_SerialIOByte pop ar2;liveosci.c:321: rv=(CkGen_SerialIOByte(ckspeed)!=CMD_CKGEN_SET_CLOCK_SPEED);; genCall mov dpl,r2 lcall _CkGen_SerialIOByte mov r2,dpl; genCast mov r3,#0x00; genCmpEq; Peephole 241.b optimized compare clr a cjne r2,#0x01,00113$ cjne r3,#0x00,00113$ inc a00113$:00114$:; genNot; Peephole 105 removed redundant mov mov r2,a cjne a,#0x01,00115$00115$: clr a rlc a mov dpl,a;liveosci.c:326: SET_CKGEN_INT1_SREG_RCK_LOW();; genAssign mov r2,_IOA; genAnd mov a,#0xFD anl a,r2 mov _IOA,a;liveosci.c:328: return(rv);; genRet00107$: ret;------------------------------------------------------------;Allocation info for local variables in function 'SetIOModuleConfig';------------------------------------------------------------;config Allocated to registers ;------------------------------------------------------------;liveosci.c:336: static uint8 SetIOModuleConfig(uint8 config); -----------------------------------------; function SetIOModuleConfig; -----------------------------------------_SetIOModuleConfig:; genReceive mov _iomodule_config,dpl;liveosci.c:340: WriteIOModuleConfig(/*keep_rck_high=*/0);; genCall mov dpl,#0x00 lcall _WriteIOModuleConfig;liveosci.c:342: return(0);; genRet mov dpl,#0x0000101$: ret;------------------------------------------------------------;Allocation info for local variables in function 'HandleEP1Data';------------------------------------------------------------;len Allocated to registers r2 ;buf Allocated to registers ;rv Allocated to registers r3 ;speed Allocated to registers r4 ;config Allocated to registers r4 ;dest Allocated to registers ;------------------------------------------------------------;liveosci.c:348: static void HandleEP1Data(void); -----------------------------------------; function HandleEP1Data; -----------------------------------------_HandleEP1Data:;liveosci.c:350: uint8 len=EP1OUTBC; // 0..64; genAssign mov dptr,#_EP1OUTBC movx a,@dptr mov r2,a;liveosci.c:351: xdata uint8 *buf=EP1OUTBUF;;liveosci.c:352: uint8 rv=0xff; // "Unknown command."; genAssign mov r3,#0xFF;liveosci.c:356: if(len<2) return;; genCmpLt; genCmp cjne r2,#0x02,00120$00120$:; genIfxJump; Peephole 108 removed ljmp by inverse jump logic jnc 00102$00121$:; genRet; Peephole 112.b changed ljmp to sjmp sjmp 00112$00102$:;liveosci.c:358: switch(*buf); genPointerGet; genFarPointerGet mov dptr,#_EP1OUTBUF movx a,@dptr mov r4,a; genCast mov r5,#0x00; genCmpEq cjne r4,#0x01,00122$ cjne r5,#0x00,00122$; Peephole 112.b changed ljmp to sjmp sjmp 00105$00122$:; genCmpEq; Peephole 112.b changed ljmp to sjmp;liveosci.c:368: } break;; Peephole 112.b changed ljmp to sjmp; Peephole 198 optimized misc jump sequence cjne r4,#0x02,00109$ cjne r5,#0x00,00109$ sjmp 00108$;00123$:00105$:;liveosci.c:363: if(len>=3); genCmpLt; genCmp cjne r2,#0x03,00124$00124$:; genIfxJump; Peephole 112.b changed ljmp to sjmp; Peephole 160 removed sjmp by inverse jump logic jc 00109$00125$:;liveosci.c:365: uint8 speed=buf[2];; genPointerGet; genFarPointerGet mov dptr,#(_EP1OUTBUF + 0x0002) movx a,@dptr;liveosci.c:366: rv=SetClockSpeed(speed);; genCall; Peephole 244.c loading dpl from a instead of r4 mov r4,a mov dpl,a push ar2 lcall _SetClockSpeed mov r3,dpl pop ar2;liveosci.c:368: } break;;liveosci.c:377: } break;; Peephole 112.b changed ljmp to sjmp sjmp 00109$00108$:;liveosci.c:372: if(len>=3); genCmpLt; genCmp cjne r2,#0x03,00126$00126$:; genIfxJump; Peephole 112.b changed ljmp to sjmp; Peephole 160 removed sjmp by inverse jump logic jc 00109$00127$:;liveosci.c:374: uint8 config=buf[2];; genPointerGet; genFarPointerGet mov dptr,#(_EP1OUTBUF + 0x0002) movx a,@dptr;liveosci.c:375: rv=SetIOModuleConfig(config);; genCall; Peephole 244.c loading dpl from a instead of r4 mov r4,a mov dpl,a push ar2 lcall _SetIOModuleConfig mov r3,dpl pop ar2;liveosci.c:378: }00109$:;liveosci.c:381: if(!(EP01STAT & 0x4U)); genCast mov r4,_EP01STAT mov r5,#0x00; genAnd mov a,r4; genIfxJump; Peephole 112.a removed ljmp by inverse jump logic jb acc.2,00112$00128$:;liveosci.c:383: xdata uint8 *dest=EP1INBUF;;liveosci.c:384: dest[0]=buf[0]; // Copy command. ; genPointerGet; genFarPointerGet mov dptr,#_EP1OUTBUF movx a,@dptr; genPointerSet; genFarPointerSet; Peephole 100 removed redundant mov mov r4,a mov dptr,#_EP1INBUF movx @dptr,a;liveosci.c:385: dest[1]=buf[1]; // Copy serial. ; genPointerGet; genFarPointerGet mov dptr,#(_EP1OUTBUF + 0x0001) movx a,@dptr; genPointerSet; genFarPointerSet; Peephole 100 removed redundant mov mov r4,a mov dptr,#(_EP1INBUF + 0x0001) movx @dptr,a;liveosci.c:386: dest[2]=len; // Store received size. ; genPointerSet; genFarPointerSet mov dptr,#(_EP1INBUF + 0x0002) mov a,r2 movx @dptr,a;liveosci.c:387: dest[3]=rv; // Status code. ; genPointerSet; genFarPointerSet mov dptr,#(_EP1INBUF + 0x0003) mov a,r3 movx @dptr,a;liveosci.c:390: EP1INBC=4;; genAssign mov dptr,#_EP1INBC mov a,#0x04 movx @dptr,a00112$: ret;------------------------------------------------------------;Allocation info for local variables in function 'main';------------------------------------------------------------;oldstat Allocated to registers r2 ;curstat Allocated to registers r3 ;------------------------------------------------------------;liveosci.c:397: void main(); -----------------------------------------; function main; -----------------------------------------_main:;liveosci.c:401: Initialize();; genCall lcall _Initialize;liveosci.c:405: oldstat=EP01STAT;; genAssign mov r2,_EP01STAT;liveosci.c:408: EP1OUTBC=0x01; ; genAssign mov dptr,#_EP1OUTBC mov a,#0x01 movx @dptr,a;liveosci.c:413: SetClockSpeed(1); // FIXME; genCall mov dpl,#0x01 push ar2 lcall _SetClockSpeed pop ar200106$:;liveosci.c:417: uint8 curstat=EP01STAT;; genAssign mov r3,_EP01STAT;liveosci.c:421: if(!(curstat & 0x02) && (oldstat && 0x02)); genAnd mov a,r3; genIfxJump; Peephole 112.a removed ljmp by inverse jump logic jb acc.1,00102$00113$:; genIfx mov a,r2; genIfxJump; Peephole 110 removed ljmp by inverse jump logic jz 00102$00114$:;liveosci.c:424: HandleEP1Data();; genCall push ar3 lcall _HandleEP1Data pop ar3;liveosci.c:427: EP1OUTBC=0x01;; genAssign mov dptr,#_EP1OUTBC mov a,#0x01 movx @dptr,a00102$:;liveosci.c:430: oldstat=curstat;; genAssign mov ar2,r3; Peephole 112.b changed ljmp to sjmp sjmp 00106$00108$: ret .area CSEG (CODE) .area XINIT (CODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -