📄 os_time.asm
字号:
R2=R1&3600
R3=[bp+31] // QImode move
R1=R3 // QImode move
R1 = R1 + R2 //addqi3
R4=3600 // QImode move
[bp+4]=R4 // QImode move
R2=[bp+4] // QImode move
// ashrqi3_rr1 R2 R2 15
R2=R2 asr 3
R2=R2 asr 4
R2=R2 asr 4
R2=R2 asr 4
[bp+32]=R2 // QImode move
R3=[bp+32] // QImode move
R4=[bp+3] // QImode move
R3&=[R4] // andqi3_r0R
[bp+5]=R3 // QImode move
R1 = R1 + [bp+5] //addqi3
R2=R1 // QImode move
[bp+31]=R2 // QImode move
R2=[bp+3] // QImode move
R3=[bp+3] // QImode move
R3=R3+1
[bp+33]=R3 // QImode move
R1=[bp+33] // QImode move
R1=[R1] // QImode move
[bp+32]=R1 // QImode move
R2=60 // QImode move
[bp+8]=R2 // QImode move
R1=[bp+32] // QImode move
R2=[bp+8] // QImode move
mr=R1*R2 // R3=R1*R2 32bit=16bit*16bit
//split [bp+6], R3
[bp+6]=R3 // QImode move
[bp+7]=R4 // QImode move
R3=[bp+33] // QImode move
R3=[R3] // QImode move
[bp+9]=R3 // QImode move
R4=[bp+9] // QImode move
// ashrqi3_rr1 R4 R4 15
R4=R4 asr 3
R4=R4 asr 4
R4=R4 asr 4
R4=R4 asr 4
[bp+32]=R4 // QImode move
R1=[bp+32] // QImode move
R1=R1&60
[bp+10]=R1 // QImode move
R2=[bp+7] // QImode move
[bp+32]=R2 // QImode move
R3=[bp+32] // QImode move
R3 = R3 + [bp+10] //addqi3
[bp+32]=R3 // QImode move
R4=60 // QImode move
[bp+12]=R4 // QImode move
R1=[bp+12] // QImode move
// ashrqi3_rr1 R1 R1 15
R1=R1 asr 3
R1=R1 asr 4
R1=R1 asr 4
R1=R1 asr 4
[bp+11]=R1 // QImode move
R1=[bp+11] // QImode move
R2=[bp+33] // QImode move
R1&=[R2] // andqi3_r0R
R3=[bp+32] // QImode move
[bp+13]=R3 // QImode move
R4=[bp+13] // QImode move
R4 = R4 + R1 //addqi3
[bp+13]=R4 // QImode move
R1=[bp+13] // QImode move
[bp+7]=R1 // QImode move
R3=[bp+30] // QImode move
[bp+14]=R3 // QImode move
R4=[bp+6] // QImode move
R4 = R4 + [bp+14] //addqi3
[bp+14]=R4 // QImode move
R1=[bp+14] // QImode move
R3=1 // QImode move
[bp+15]=R3 // QImode move
R4=[bp+14] // QImode move
R3=[bp+30] // QImode move
CMP R4,R3 // QImode compare
NSJB L15 //QImode LTU
R4=0 // QImode move
[bp+15]=R4 // QImode move
L15:
R4=[bp+31] // QImode move
R3=R4 // QImode move
R4=[bp+7] // QImode move
R3 = R3 + R4 //addqi3
R2=R3 // QImode move
R3 = R3 + [bp+15] //addqi3
R2=R3 // QImode move
R3=[bp+3] // QImode move
R3=[bp+3] // QImode move
R3=R3+2
[bp+16]=R3 // QImode move
R4=[bp+16] // QImode move
R3=[R4]
R4=0
//split [bp+17], R3
[bp+17]=R3 // QImode move
[bp+18]=R4 // QImode move
[bp+19]=R1 // QImode move
R3=[bp+17] // QImode move
R3 = R3 + [bp+19] //addqi3
[bp+19]=R3 // QImode move
R4=[bp+19] // QImode move
[bp+30]=R4 // QImode move
R3=1 // QImode move
[bp+20]=R3 // QImode move
R4=[bp+19] // QImode move
CMP R4,R1 // QImode compare
NSJB L16 //QImode LTU
R3=0 // QImode move
[bp+20]=R3 // QImode move
L16:
R1=R2 // QImode move
R4=[bp+18] // QImode move
R1 = R1 + R4 //addqi3
R2=R1 // QImode move
[bp+31]=R2 // QImode move
R1 = R1 + [bp+20] //addqi3
R3=R1 // QImode move
[bp+31]=R3 // QImode move
//split R1, [bp+30]
R1=[bp+30] // QImode move
R2=[bp+31] // QImode move
//split [bp+30], R1
[bp+30]=R1 // QImode move
[bp+31]=R2 // QImode move
//split R1, [bp+30]
R1=[bp+30] // QImode move
R2=[bp+31] // QImode move
R3=6 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP = SP + 3 //SP
//split [bp+21], R1
[bp+21]=R1 // QImode move
[bp+22]=R2 // QImode move
R1=[bp+3] // QImode move
R3=[bp+3] // QImode move
R2=R3+3
R1=R2 // QImode move
R3=[R1]
R4=0
R1=R3+7 // HImode RD=RS+#IMM16
R2=R4+0, Carry
//split [bp+23], R1
[bp+23]=R1 // QImode move
[bp+24]=R2 // QImode move
//split R1, [bp+23]
R1=[bp+23] // QImode move
R2=[bp+24] // QImode move
R3=6 // QImode move
[SP--]=R3 // QImode move
push R1,R2 to [sp] // pushhi
call __lshiu2 // call with return value
SP = SP + 3 //SP
//split R3, 1000
R3=1000 // QImode move
R4=0 // QImode move
push R3,R4 to [sp] // pushhi
push R1,R2 to [sp] // pushhi
call __divu2 // call with return value
SP = SP + 4 //SP
//split [bp+30], R1
[bp+30]=R1 // QImode move
[bp+31]=R2 // QImode move
R3=[bp+21] // QImode move
[bp+25]=R3 // QImode move
R4=[bp+30] // QImode move
R4 = R4 + [bp+25] //addqi3
[bp+25]=R4 // QImode move
R1=[bp+25] // QImode move
R3=1 // QImode move
[bp+26]=R3 // QImode move
R4=[bp+25] // QImode move
R3=[bp+21] // QImode move
CMP R4,R3 // QImode compare
NSJB L17 //QImode LTU
R4=0 // QImode move
[bp+26]=R4 // QImode move
L17:
R3=[bp+22] // QImode move
[bp+27]=R3 // QImode move
R4=[bp+31] // QImode move
R4 = R4 + [bp+27] //addqi3
[bp+27]=R4 // QImode move
R2=[bp+27] // QImode move
R3=[bp+27] // QImode move
R3 = R3 + [bp+26] //addqi3
R2=R3 // QImode move
//split [BP], R1
[BP]=R1 // QImode move
[bp+1]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,114,',0,0
.dd LM29-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM29:
R2=BP // QImode move
R1=BP+2
//split R3, [BP]
R3=[BP] // QImode move
R4=[bp+1] // QImode move
//split [bp+28], R3
[bp+28]=R3 // QImode move
[bp+29]=R4 // QImode move
//split R3, [bp+28]
R3=[bp+28] // QImode move
R4=[bp+29] // QImode move
R3 = R4 //special case for logical right shift 16 bits
R4 = 0
//split [bp+30], R3
[bp+30]=R3 // QImode move
[bp+31]=R4 // QImode move
R4=[bp+30] // QImode move
R2=R4 // QImode move
R3=R1 // QImode move
[R3]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,115,',0,0
.dd LM30-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM30:
//split R1, [BP]
R1=[BP] // QImode move
R2=[bp+1] // QImode move
R3=R1&(-1) // HImode RD=RS&#IMM16
R4=R2&0
//split [BP], R3
[BP]=R3 // QImode move
[bp+1]=R4 // QImode move
.debug
.dw '.stabn 0x44,0,116,',0,0
.dd LM31-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM31:
R1=[BP] // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,117,',0,0
.dd LM32-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM32:
L18:
R1=BP // QImode move
R2=BP+2
R4=R2 // QImode move
R1=[R4] // QImode move
CMP R1,0 // QImode test
NSJNZ L20 //QImode NE
pc=L19 // Indirect jump
L20:
.debug
.dw '.stabn 0x44,0,118,',0,0
.dd LM33-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM33:
R1=(-32768) // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,119,',0,0
.dd LM34-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM34:
R1=(-32768) // QImode move
[SP--]=R1 // QImode move
call _OSTimeDly // call without return value
SP = SP + 1 //SP
.debug
.dw '.stabn 0x44,0,120,',0,0
.dd LM35-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM35:
R1=BP // QImode move
R2=BP+2
R3=BP // QImode move
R1=BP+2
R2=BP // QImode move
R3=BP+2
R4=R3 // QImode move
R2=[R4] // QImode move
R3=R2+(-1)
R2=R1 // QImode move
[R2]=R3 // QImode move
.debug
.dw '.stabn 0x44,0,121,',0,0
.dd LM36-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM36:
pc=L18 // Indirect jump
L19:
.debug
.dw '.stabn 0x44,0,122,',0,0
.dd LM37-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM37:
R1=0 // QImode move
pc=L7 // Indirect jump
.debug
.dw '.stabn 0x44,0,123,',0,0
.dd LM38-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM38:
LBE4:
.debug
.dw '.stabn 0x44,0,123,',0,0
.dd LM39-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LM39:
L7:
sp+=34
pop bp from [sp]
retf
.endp // end of OSTimeDlyHMSM
.debug
.dw '.stabs "hours:p21",160,0,0,37',0x0d,0x0a
.CODE
.debug
.dw '.stabs "minutes:p21",160,0,0,38',0x0d,0x0a
.CODE
.debug
.dw '.stabs "seconds:p21",160,0,0,39',0x0d,0x0a
.CODE
.debug
.dw '.stabs "milli:p23",160,0,0,40',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xc0,0,0,',0,0
.dd LBB4-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
.debug
.dw '.stabs "ticks:25",128,0,0,0',0x0d,0x0a
.CODE
.debug
.dw '.stabs "loops:23",128,0,0,2',0x0d,0x0a
.CODE
.debug
.dw '.stabn 0xe0,0,0,',0,0
.dd LBE4-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
.debug
.dw '.stabf ',0,0
.dd LME2-_OSTimeDlyHMSM
.dw 0x0d,0x0a
.code
LME2:
.code
.debug
.dw '.stabs "OSTimeDlyResume:F21",36,0,0,',0,0,offset _OSTimeDlyResume,seg _OSTimeDlyResume,0x0d,0x0a
.CODE
.public _OSTimeDlyResume
_OSTimeDlyResume: .proc
.debug
.dw '.stabn 0x44,0,153,',0,0
.dd LM40-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM40:
// total=4, vars=4
// frame_pointer_needed: 1
push bp to [sp]
sp-=4
bp=sp+1
R1=BP+7
[bp+1]=R1 // QImode move
.debug
.dw '.stabn 0x44,0,154,',0,0
.dd LM41-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM41:
LBB5:
.debug
.dw '.stabn 0x44,0,161,',0,0
.dd LM42-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM42:
R2=[bp+1] // QImode move
R1=[R2] // QImode move
CMP R1,24 // QImode compare
NSJNA L33 //QImode LEU
.debug
.dw '.stabn 0x44,0,162,',0,0
.dd LM43-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM43:
R1=42 // QImode move
pc=L32 // Indirect jump
L33:
.debug
.dw '.stabn 0x44,0,164,',0,0
.dd LM44-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM44:
call _Critical_in // call with return value
.debug
.dw '.stabn 0x44,0,165,',0,0
.dd LM45-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM45:
R1=_OSTCBPrioTbl // QImode move
R3=[bp+1] // QImode move
R2=[R3] // QImode move
R1 = R1 + R2 //addqi3
R4=R1 // QImode move
R2=[R4] // QImode move
[BP]=R2 // QImode move
.debug
.dw '.stabn 0x44,0,166,',0,0
.dd LM46-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM46:
R1=[BP] // QImode move
CMP R1,0 // QImode test
NSJNZ L34 //QImode NE
.debug
.dw '.stabn 0x44,0,167,',0,0
.dd LM47-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM47:
LBB6:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,168,',0,0
.dd LM48-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM48:
R1=11 // QImode move
pc=L32 // Indirect jump
.debug
.dw '.stabn 0x44,0,169,',0,0
.dd LM49-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM49:
LBE6:
L34:
.debug
.dw '.stabn 0x44,0,170,',0,0
.dd LM50-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM50:
R1=[BP] // QImode move
CMP R1,1 // QImode compare
NSJNZ L35 //QImode NE
.debug
.dw '.stabn 0x44,0,171,',0,0
.dd LM51-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM51:
LBB7:
call _Critical_out // call with return value
.debug
.dw '.stabn 0x44,0,172,',0,0
.dd LM52-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM52:
R1=11 // QImode move
pc=L32 // Indirect jump
.debug
.dw '.stabn 0x44,0,173,',0,0
.dd LM53-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM53:
LBE7:
L35:
.debug
.dw '.stabn 0x44,0,174,',0,0
.dd LM54-_OSTimeDlyResume
.dw 0x0d,0x0a
.code
LM54:
R2=[BP] // QImode move
R1=R2 // QImode move
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -