time.asm
来自「很少见的源码公开的msc51和z80的c编译器。」· 汇编 代码 · 共 3,690 行 · 第 1/4 页
ASM
3,690 行
push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#_mktime_seconds_1_1 mov a,r6 movx @dptr,a inc dptr mov a,r7 movx @dptr,a inc dptr mov a,r0 movx @dptr,a inc dptr mov a,r1 movx @dptr,a; time.c 184; genAssign mov dptr,#_mktime_seconds_1_1; genAssign: resultIsFar = TRUE; genFarFarAssign (390 auto-toggle fun) mov dps, #0x21 mov dptr,#_mktime_seconds_1_1 movx a,@dptr movx @dptr,a inc dptr inc dptr movx a,@dptr movx @dptr,a inc dptr inc dptr movx a,@dptr movx @dptr,a inc dptr inc dptr movx a,@dptr movx @dptr,a mov dps, #0; genAssign ; genAssign: resultIsFar = TRUE mov r6,#0xB2 mov r7,#0x07; genLabel 00107$:; genCmpLt mov dptr,#_mktime_year_1_1; genCmp clr c; genCmp #1: 1/1/0 mov a,r6; genCmp #2; genCmp #4; genCmp #4.1 xch a, b movx a,@dptr xch a, b subb a,b; genCmp #1: 0/1/1 mov a,r7; genCmp #2; genCmp #3 xrl a,#0x80; genCmp #3.2 push acc inc dptr movx a,@dptr mov b,a xrl b,#0x80 pop acc subb a,b clr a rlc a mov r0,a; genAssign mov dptr,#_mktime_seconds_1_1; genAssign: resultIsFar = TRUE; genFarFarAssign (390 auto-toggle fun) mov dps, #0x21 mov dptr,#_mktime_seconds_1_1 movx a,@dptr movx @dptr,a inc dptr inc dptr movx a,@dptr movx @dptr,a inc dptr inc dptr movx a,@dptr movx @dptr,a inc dptr inc dptr movx a,@dptr movx @dptr,a mov dps, #0; genIfx mov a,r0; genIfxJump jnz 00124$ ljmp 00123$00124$:; time.c 185; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__modsint_PARM_2 mov a,#0x04 movx @dptr,a clr a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 push ar6 push ar7 mov dpl,r6 mov dph,r7 lcall __modsint mov r0,dpl mov r1,dph pop ar7 pop ar6 pop ar5 pop ar4 pop ar3 pop ar2; genCmpEq ; gencjneshort mov a,r0; Peephole 132 changed ljmp to sjmp; Peephole 197 optimized misc jump sequence cjne a,#0x00,00109$ mov a,r1 cjne a,#0x00,00109$;00125$:; Peephole 200 removed redundant sjmp00126$:; time.c 186; genPlus mov dptr,#_mktime_seconds_1_1; Swapped plus args. movx a,@dptr add a,#0x80 movx @dptr,a inc dptr movx a,@dptr addc a,#0x51 movx @dptr,a inc dptr movx a,@dptr addc a,#0x01 movx @dptr,a inc dptr movx a,@dptr addc a,#0x00 movx @dptr,a; genLabel 00109$:; time.c 184; genPlus inc r6 cjne r6,#0x00,00127$ inc r700127$:; did genPlusIncr; genGoto ljmp 00107$; time.c 191; genLabel 00123$:; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__modsint_PARM_2 mov a,#0x04 movx @dptr,a clr a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dptr,#_mktime_year_1_1 movx a,@dptr mov r2,a inc dptr movx a,@dptr mov dph,a mov dpl,r2 lcall __modsint mov r6,dpl mov r7,dph pop ar5 pop ar4 pop ar3 pop ar2; genCmpEq ; gencjne; gencjneshort mov a,r6 cjne a,#0x00,00128$ mov a,r7 cjne a,#0x00,00128$ mov a,#0x01 sjmp 00129$00128$: clr a00129$: mov r6,a; genAssign ; genAssign: resultIsFar = TRUE mov r7,#0x00 mov r0,#0x00; genLabel 00111$:; genCmpLt mov dptr,#_mktime_month_1_1; genCmp clr c; genCmp #1: 1/1/0 mov a,r7; genCmp #2; genCmp #4; genCmp #4.1 xch a, b movx a,@dptr xch a, b subb a,b; genCmp #1: 0/1/1 mov a,r0; genCmp #2; genCmp #3 xrl a,#0x80; genCmp #3.2 push acc inc dptr movx a,@dptr mov b,a xrl b,#0x80 pop acc subb a,b; genIfxJump jc 00130$ ljmp 00114$00130$:; time.c 192; genCmpEq ; gencjneshort mov a,r7; Peephole 132 changed ljmp to sjmp; Peephole 197 optimized misc jump sequence cjne a,#0x01,00104$ mov a,r0 cjne a,#0x00,00104$;00131$:; Peephole 200 removed redundant sjmp00132$:; genIfx mov a,r6; genIfxJump ; Peephole 110 removed ljmp by inverse jump logic jz 00104$00133$:; time.c 193; genPlus mov dptr,#_mktime_seconds_1_1; Swapped plus args. movx a,@dptr add a,#0x80 movx @dptr,a inc dptr movx a,@dptr addc a,#0x3B movx @dptr,a inc dptr movx a,@dptr addc a,#0x26 movx @dptr,a inc dptr movx a,@dptr addc a,#0x00 movx @dptr,a; genGoto ljmp 00113$; genLabel 00104$:; time.c 195; genPlus mov dptr,#_mktime_sloc0_1_0 mov a,r7 add a,#_monthDays movx @dptr,a mov a,r0 addc a,#(_monthDays >> 8) inc dptr movx @dptr,a; Peephole 180 changed mov to clr clr a addc a,#(_monthDays >> 16) inc dptr movx @dptr,a; genPointerGet mov dptr,#_mktime_sloc0_1_0; gencodePointerGet -- indirection special case. movx a,@dptr push acc inc dptr movx a,@dptr push acc inc dptr movx a,@dptr mov dpx,a pop dph pop dpl clr a movc a,@a+dptr; genCast ; Peephole 100 removed redundant mov mov r1,a mov dptr,#_mktime_sloc1_1_0 movx @dptr,a mov a,r1 rlc a subb a,acc inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x80 movx @dptr,a inc dptr mov a,#0x51 movx @dptr,a inc dptr mov a,#0x01 movx @dptr,a clr a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 push ar6 push ar7 push ar0 mov dptr,#_mktime_sloc1_1_0 movx a,@dptr mov r2,a inc dptr movx a,@dptr mov r3,a inc dptr movx a,@dptr mov r4,a inc dptr movx a,@dptr mov b,a mov dpx,r4 mov dph,r3 mov dpl,r2 lcall __mulslong mov dps, #0x01 mov dptr, #_mktime_sloc1_1_0 mov a,dpl movx @dptr,a inc dptr mov a,dph movx @dptr,a inc dptr mov a,dpx movx @dptr,a inc dptr mov a,b movx @dptr,a mov dps, #0x00 pop ar0 pop ar7 pop ar6 pop ar5 pop ar4 pop ar3 pop ar2; genPlus mov dptr,#_mktime_sloc1_1_0 mov dps, #0x01 mov dptr, #_mktime_seconds_1_1 dec dps; genPlus: must push result: 3 ops in far space movx a,@dptr xch a, ap inc dps movx a,@dptr add a, ap push acc dec dps inc dptr movx a,@dptr xch a, ap inc dps inc dptr movx a,@dptr addc a, ap push acc dec dps inc dptr movx a,@dptr xch a, ap inc dps inc dptr movx a,@dptr addc a, ap push acc dec dps inc dptr movx a,@dptr xch a, ap inc dps inc dptr movx a,@dptr addc a, ap push acc mov dps, #0x00 pop acc inc dps movx @dptr,a pop acc lcall __decdptr movx @dptr,a pop acc lcall __decdptr movx @dptr,a pop acc lcall __decdptr movx @dptr,a mov dps, #0x00; genLabel 00113$:; time.c 191; genPlus inc r7 cjne r7,#0x00,00134$ inc r000134$:; did genPlusIncr; genGoto ljmp 00111$; genLabel 00114$:; time.c 199; genPlus mov a,#0x03 add a,r2 mov r6,a; Peephole 180 changed mov to clr clr a addc a,r3 mov r7,a; Peephole 180 changed mov to clr clr a addc a,r4 mov r0,a mov ar1,r5; genPointerGet ; genGenPointerGet mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __gptrget mov r6,a; genMinus dec r6; genCast mov r7,#0x00 mov r0,#0x00 mov r1,#0x00; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x3C movx @dptr,a clr a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x3C movx @dptr,a clr a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x18 movx @dptr,a clr a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genPlus mov dptr,#_mktime_seconds_1_1; Swapped plus args. movx a,@dptr add a,r6 movx @dptr,a inc dptr movx a,@dptr addc a,r7 movx @dptr,a inc dptr movx a,@dptr addc a,r0 movx @dptr,a inc dptr movx a,@dptr addc a,r1 movx @dptr,a; time.c 200; genPlus mov a,#0x02 add a,r2 mov r6,a; Peephole 180 changed mov to clr clr a addc a,r3 mov r7,a; Peephole 180 changed mov to clr clr a addc a,r4 mov r0,a mov ar1,r5; genPointerGet ; genGenPointerGet mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __gptrget mov r6,a; genCast mov r7,#0x00 mov r0,#0x00 mov r1,#0x00; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x3C movx @dptr,a clr a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x3C movx @dptr,a clr a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genPlus mov dptr,#_mktime_seconds_1_1; Swapped plus args. movx a,@dptr add a,r6 movx @dptr,a inc dptr movx a,@dptr addc a,r7 movx @dptr,a inc dptr movx a,@dptr addc a,r0 movx @dptr,a inc dptr movx a,@dptr addc a,r1 movx @dptr,a; time.c 201; genPlus mov a,#0x01 add a,r2 mov r6,a; Peephole 180 changed mov to clr clr a addc a,r3 mov r7,a; Peephole 180 changed mov to clr clr a addc a,r4 mov r0,a mov ar1,r5; genPointerGet ; genGenPointerGet mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __gptrget mov r6,a; genCast mov r7,#0x00 mov r0,#0x00 mov r1,#0x00; genAssign ; genAssign: resultIsFar = TRUE mov dptr,#__mulslong_PARM_2 mov a,#0x3C movx @dptr,a clr a inc dptr movx @dptr,a inc dptr movx @dptr,a inc dptr movx @dptr,a; genCall push ar2 push ar3 push ar4 push ar5 mov dpl,r6 mov dph,r7 mov dpx,r0 mov b,r1 lcall __mulslong mov r6,dpl mov r7,dph mov r0,dpx mov r1,b pop ar5 pop ar4 pop ar3 pop ar2; genPlus mov dptr,#_mktime_seconds_1_1; Swapped plus args. movx a,@dptr add a,r6 movx @dptr,a inc dptr movx a,@dptr addc a,r7 movx @dptr,a inc dptr movx a,@dptr addc a,r0 movx @dptr,a inc dptr movx a,@dptr addc a,r1 movx @dptr,a; time.c 202; genPointerGet ; genGenPointerGet mov dpl,r2 mov dph,r3 mov dpx,r4 mov b,r5 lcall __gptrget mov r2,a; genCast mov r3,#0x00 mov r4,#0x00 mov r5,#0x00; genPlus mov dptr,#_mktime_seconds_1_1; Swapped plus args. movx a,@dptr add a,r2 mov r2,a inc dptr movx a,@dptr addc a,r3 mov r3,a inc dptr movx a,@dptr addc a,r4 mov r4,a inc dptr movx a,@dptr addc a,r5 mov r5,a; time.c 203; genRet mov dpl,r2 mov dph,r3 mov dpx,r4 mov b,r5; genLabel 00115$:; genEndFunction ret .area CSEG (CODE)_monthDays: .db #0x1F .db #0x1C .db #0x1F .db #0x1E .db #0x1F .db #0x1E .db #0x1F .db #0x1F .db #0x1E .db #0x1F .db #0x1E .db #0x1F___month: .byte _str_1,(_str_1 >> 8),(_str_1 >> 16) .byte _str_2,(_str_2 >> 8),(_str_2 >> 16) .byte _str_3,(_str_3 >> 8),(_str_3 >> 16) .byte _str_4,(_str_4 >> 8),(_str_4 >> 16) .byte _str_5,(_str_5 >> 8),(_str_5 >> 16) .byte _str_6,(_str_6 >> 8),(_str_6 >> 16) .byte _str_7,(_str_7 >> 8),(_str_7 >> 16) .byte _str_8,(_str_8 >> 8),(_str_8 >> 16) .byte _str_9,(_str_9 >> 8),(_str_9 >> 16) .byte _str_10,(_str_10 >> 8),(_str_10 >> 16) .byte _str_11,(_str_11 >> 8),(_str_11 >> 16) .byte _str_12,(_str_12 >> 8),(_str_12 >> 16)___day: .byte _str_13,(_str_13 >> 8),(_str_13 >> 16) .byte _str_14,(_str_14 >> 8),(_str_14 >> 16) .byte _str_15,(_str_15 >> 8),(_str_15 >> 16) .byte _str_16,(_str_16 >> 8),(_str_16 >> 16) .byte _str_17,(_str_17 >> 8),(_str_17 >> 16) .byte _str_18,(_str_18 >> 8),(_str_18 >> 16) .byte _str_19,(_str_19 >> 8),(_str_19 >> 16)__str_0: .ascii "%s %s %2d %02d:%02d:%02d %04d" .db 0x0A .db 0x00_str_1: .ascii "Jan" .db 0x00_str_2: .ascii "Feb" .db 0x00_str_3: .ascii "Mar" .db 0x00_str_4: .ascii "Apr" .db 0x00_str_5: .ascii "May" .db 0x00_str_6: .ascii "Jun" .db 0x00_str_7: .ascii "Jul" .db 0x00_str_8: .ascii "Aug" .db 0x00_str_9: .ascii "Sep" .db 0x00_str_10: .ascii "Oct" .db 0x00_str_11: .ascii "Nov" .db 0x00_str_12: .ascii "Dec" .db 0x00_str_13: .ascii "Sun" .db 0x00_str_14: .ascii "Mon" .db 0x00_str_15: .ascii "Tue" .db 0x00_str_16: .ascii "Wed" .db 0x00_str_17: .ascii "Thu" .db 0x00_str_18: .ascii "Fri" .db 0x00_str_19: .ascii "Sat" .db 0x00
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?