📄 x.s
字号:
.area text(rom, con, rel)
; f -> y+20
; fpcode -> y+18
; carray -> y+14
; i -> y+12
; bp -> y+10
; signch -> R14
; cs -> R22,R23
; prec -> R20,R21
; ret -> y+28
; s -> R10,R11
; width -> y+26
; flags -> y+24
; done -> R12,R13
; va -> y+44
; fmt -> y+42
; _put -> y+40
.even
__print::
rcall push_arg4
rcall push_gset5
sbiw R28,30
clr R0
clr R1
std y+29,R1
std y+28,R0
rjmp L5
L2:
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,37
breq L6
ldd R30,y+42
ldd R31,y+43
ldd R16,z+0
ldd R30,y+40
ldd R31,y+41
rcall xicall
ldd R24,y+28
ldd R25,y+29
adiw R24,1
std y+29,R25
std y+28,R24
rjmp L3
L6:
clr R0
clr R1
std y+27,R1
std y+26,R0
ldi R20,-1
ldi R21,-1
std y+25,R1
std y+24,R0
ldi R24,<_buf
ldi R25,>_buf
std y+11,R25
std y+10,R24
ldi R24,32
mov R14,R24
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
clr R12
clr R13
L8:
ldd R30,y+42
ldd R31,y+43
ldd R2,z+0
clr R3
std y+17,R3
std y+16,R2
mov R30,R2
mov R31,R3
st -y,R30
cpi R30,32
ldi R30,0
cpc R31,R30
ld R30,y+
breq L18
st -y,R30
cpi R30,35
ldi R30,0
cpc R31,R30
ld R30,y+
breq L15
cpi R30,32
ldi R30,0
cpc R31,R30
brlt L12
L20:
ldd R30,y+16
ldd R31,y+17
st -y,R30
cpi R30,43
ldi R30,0
cpc R31,R30
ld R30,y+
breq L17
st -y,R30
cpi R30,45
ldi R30,0
cpc R31,R30
ld R30,y+
breq L16
cpi R30,48
ldi R30,0
cpc R31,R30
breq L19
rjmp L12
L15:
ldd R24,y+24
ldd R25,y+25
ori R24,1
std y+25,R25
std y+24,R24
rjmp L13
L16:
ldd R24,y+24
ldd R25,y+25
ori R24,4
std y+25,R25
std y+24,R24
rjmp L13
L17:
ldd R24,y+24
ldd R25,y+25
ori R24,8
std y+25,R25
std y+24,R24
ldi R24,43
mov R14,R24
rjmp L13
L18:
ldd R24,y+24
ldd R25,y+25
ori R24,8
std y+25,R25
std y+24,R24
ldi R24,32
mov R14,R24
rjmp L13
L19:
ldd R24,y+24
ldd R25,y+25
ori R24,16
std y+25,R25
std y+24,R24
rjmp L13
L12:
ldi R24,1
ldi R25,0
mov R12,R24
mov R13,R25
L13:
tst R12
brne X0
tst R13
breq L21
X0:
rjmp L10
L21:
L9:
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
rjmp L8
L10:
ldd R30,y+42
ldd R31,y+43
ldd R16,z+0
clr R17
rcall _isdigit
cpi R16,0
cpc R16,R17
breq L23
X1:
ldd R16,y+42
ldd R17,y+43
rcall _atoi
std y+27,R17
std y+26,R16
rjmp L26
L25:
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
L26:
ldd R30,y+42
ldd R31,y+43
ldd R16,z+0
clr R17
rcall _isdigit
cpi R16,0
cpc R16,R17
brne L25
X2:
rjmp L24
L23:
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,42
brne L28
ldd R24,y+44
ldd R25,y+45
adiw R24,2
std y+45,R25
std y+44,R24
mov R30,R24
mov R31,R25
sbiw R30,2
ldd R2,z+0
ldd R3,z+1
std y+27,R3
std y+26,R2
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
L28:
L24:
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,46
breq X15
rjmp L30
X15:
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
mov R30,R24
mov R31,R25
ldd R16,z+0
clr R17
rcall _isdigit
cpi R16,0
cpc R16,R17
breq L32
X3:
ldd R16,y+42
ldd R17,y+43
rcall _atoi
mov R20,R16
mov R21,R17
rjmp L35
L34:
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
L35:
ldd R30,y+42
ldd R31,y+43
ldd R16,z+0
clr R17
rcall _isdigit
cpi R16,0
cpc R16,R17
brne L34
X4:
rjmp L33
L32:
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,42
brne L37
ldd R24,y+44
ldd R25,y+45
adiw R24,2
std y+45,R25
std y+44,R24
mov R30,R24
mov R31,R25
sbiw R30,2
ldd R20,z+0
ldd R21,z+1
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
L37:
L33:
L30:
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,108
brne L39
ldd R24,y+42
ldd R25,y+43
adiw R24,1
std y+43,R25
std y+42,R24
ldd R24,y+24
ldd R25,y+25
ori R24,2
std y+25,R25
std y+24,R24
L39:
ldd R30,y+42
ldd R31,y+43
ldd R2,z+0
clr R3
std y+17,R3
std y+16,R2
mov R30,R2
mov R31,R3
st -y,R30
cpi R30,88
ldi R30,0
cpc R31,R30
ld R30,y+
brne X16
rjmp L48
X16:
ldi R24,88
ldi R25,0
cp R24,R30
cpc R25,R31
brlt L159
L158:
ldd R30,y+16
ldd R31,y+17
st -y,R30
cpi R30,69
ldi R30,0
cpc R31,R30
ld R30,y+
brne X17
rjmp L147
X17:
st -y,R30
cpi R30,71
ldi R30,0
cpc R31,R30
ld R30,y+
brne X18
rjmp L150
X18:
cpi R30,69
ldi R30,0
cpc R31,R30
brge X19
rjmp L41
X19:
L160:
ldd R30,y+16
ldd R31,y+17
cpi R30,83
ldi R30,0
cpc R31,R30
brne X20
rjmp L74
X20:
rjmp L41
L159:
ldd R30,y+16
ldd R31,y+17
st -y,R30
cpi R30,111
ldi R30,0
cpc R31,R30
ld R30,y+
brne X21
rjmp L48
X21:
ldi R24,111
ldi R25,0
cp R24,R30
cpc R25,R31
brlt L162
L161:
ldd R30,y+16
ldd R31,y+17
st -y,R30
cpi R30,99
ldi R30,0
cpc R31,R30
ld R30,y+
brne X22
rjmp L70
X22:
st -y,R30
cpi R30,100
ldi R30,0
cpc R31,R30
ld R30,y+
brne X23
rjmp L44
X23:
st -y,R30
cpi R30,101
ldi R30,0
cpc R31,R30
ld R30,y+
brne X24
rjmp L145
X24:
st -y,R30
cpi R30,102
ldi R30,0
cpc R31,R30
ld R30,y+
brne X25
rjmp L148
X25:
cpi R30,103
ldi R30,0
cpc R31,R30
brne X26
rjmp L149
X26:
rjmp L41
L162:
ldd R30,y+16
ldd R31,y+17
st -y,R30
cpi R30,115
ldi R30,0
cpc R31,R30
ld R30,y+
brne X27
rjmp L108
X27:
st -y,R30
cpi R30,117
ldi R30,0
cpc R31,R30
ld R30,y+
brne X28
rjmp L48
X28:
cpi R30,120
ldi R30,0
cpc R31,R30
brne X29
rjmp L48
X29:
rjmp L41
L41:
ldd R30,y+42
ldd R31,y+43
ldd R16,z+0
ldd R30,y+40
ldd R31,y+41
rcall xicall
ldd R24,y+28
ldd R25,y+29
adiw R24,1
std y+29,R25
std y+28,R24
rjmp L42
L44:
ldd R24,y+44
ldd R25,y+45
adiw R24,2
std y+45,R25
std y+44,R24
mov R30,R24
mov R31,R25
sbiw R30,2
ldd R2,z+0
ldd R3,z+1
std y+13,R3
std y+12,R2
mov R30,R2
mov R31,R3
cpi R30,0
ldi R30,0
cpc R31,R30
brge L45
ldd R24,y+24
ldd R25,y+25
ori R24,8
std y+25,R25
std y+24,R24
ldi R24,45
mov R14,R24
ldd R24,y+12
ldd R25,y+13
com R24
com R25
subi R24,0xFF
sbci R25,0xFF
std y+13,R25
std y+12,R24
L45:
ldi R24,10
ldi R25,0
std y+1,R25
std y+0,R24
ldd R18,y+12
ldd R19,y+13
ldd R16,y+10
ldd R17,y+11
rcall _itoa
rjmp L47
L48:
ldd R24,y+44
ldd R25,y+45
adiw R24,2
std y+45,R25
std y+44,R24
mov R30,R24
mov R31,R25
sbiw R30,2
ldd R2,z+0
ldd R3,z+1
std y+13,R3
std y+12,R2
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,117
brne L49
ldi R24,10
ldi R25,0
std y+1,R25
std y+0,R24
mov R18,R2
mov R19,R3
ldd R16,y+10
ldd R17,y+11
rcall _itoa
rjmp L50
L49:
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,111
brne L51
ldd R0,y+24
ldd R1,y+25
sbrs R0,0
rjmp L53
ldi R24,48
ldd R30,y+10
ldd R31,y+11
st Z+,R24
std y+11,R31
std y+10,R30
L53:
ldi R24,8
ldi R25,0
std y+1,R25
std y+0,R24
ldd R18,y+12
ldd R19,y+13
ldd R16,y+10
ldd R17,y+11
rcall _itoa
rjmp L52
L51:
ldd R0,y+24
ldd R1,y+25
sbrs R0,0
rjmp L55
ldi R24,48
ldd R30,y+10
ldd R31,y+11
st Z+,R24
std y+11,R31
std y+10,R30
ldd R30,y+42
ldd R31,y+43
ldd R2,z+0
ldd R30,y+10
ldd R31,y+11
st Z+,R2
std y+11,R31
std y+10,R30
L55:
ldi R24,16
ldi R25,0
std y+1,R25
std y+0,R24
ldd R18,y+12
ldd R19,y+13
ldd R16,y+10
ldd R17,y+11
rcall _itoa
ldd R30,y+42
ldd R31,y+43
ldd R30,z+0
cpi R30,88
brne L57
ldi R24,<_buf
ldi R25,>_buf
mov R10,R24
mov R11,R25
rjmp L62
L59:
mov R30,R10
mov R31,R11
ldd R16,z+0
clr R17
rcall _toupper
mov R30,R10
mov R31,R11
std z+0,R16
L60:
mov R24,R10
mov R25,R11
adiw R24,1
mov R10,R24
mov R11,R25
L62:
mov R30,R10
mov R31,R11
ldd R2,z+0
tst R2
brne L59
L57:
L52:
L50:
L47:
ldi R24,<_buf
ldi R25,>_buf
mov R10,R24
mov R11,R25
cpi R20,255
ldi R30,255
cpc R21,R30
brne L63
clr R20
clr R21
L63:
cpi R20,0
cpc R20,R21
brne X30
rjmp L69
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -