📄 main.lss
字号:
cc8: 80 e0 ldi r24, 0x00 ; 0
cca: 0e 94 fa 04 call 0x9f4
cce: 85 ea ldi r24, 0xA5 ; 165
cd0: 0e 94 fa 04 call 0x9f4
cd4: 80 e0 ldi r24, 0x00 ; 0
cd6: 0e 94 fa 04 call 0x9f4
cda: 89 e0 ldi r24, 0x09 ; 9
cdc: 0e 94 fa 04 call 0x9f4
ce0: 80 e0 ldi r24, 0x00 ; 0
ce2: 0e 94 fa 04 call 0x9f4
ce6: 85 e1 ldi r24, 0x15 ; 21
ce8: 0e 94 fa 04 call 0x9f4
cec: 80 e0 ldi r24, 0x00 ; 0
cee: 0e 94 fa 04 call 0x9f4
cf2: 81 e1 ldi r24, 0x11 ; 17
cf4: 0e 94 fa 04 call 0x9f4
*/
static __inline__ void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
cf8: c8 01 movw r24, r16
cfa: 01 97 sbiw r24, 0x01 ; 1
cfc: f1 f7 brne .-4 ; 0xcfa
cfe: 81 ee ldi r24, 0xE1 ; 225
d00: 0e 94 f2 04 call 0x9e4
d04: 80 e0 ldi r24, 0x00 ; 0
d06: 0e 94 fa 04 call 0x9f4
d0a: 80 e4 ldi r24, 0x40 ; 64
d0c: 0e 94 fa 04 call 0x9f4
d10: 80 e0 ldi r24, 0x00 ; 0
d12: 0e 94 fa 04 call 0x9f4
d16: 81 e2 ldi r24, 0x21 ; 33
d18: 0e 94 fa 04 call 0x9f4
d1c: 80 e0 ldi r24, 0x00 ; 0
d1e: 0e 94 fa 04 call 0x9f4
d22: 84 e6 ldi r24, 0x64 ; 100
d24: 0e 94 fa 04 call 0x9f4
d28: 80 e0 ldi r24, 0x00 ; 0
d2a: 0e 94 fa 04 call 0x9f4
d2e: 83 e1 ldi r24, 0x13 ; 19
d30: 0e 94 fa 04 call 0x9f4
d34: 80 e0 ldi r24, 0x00 ; 0
d36: 0e 94 fa 04 call 0x9f4
d3a: 83 ef ldi r24, 0xF3 ; 243
d3c: 0e 94 fa 04 call 0x9f4
d40: 80 e0 ldi r24, 0x00 ; 0
d42: 0e 94 fa 04 call 0x9f4
d46: 8b e0 ldi r24, 0x0B ; 11
d48: 0e 94 fa 04 call 0x9f4
d4c: 80 e0 ldi r24, 0x00 ; 0
d4e: 0e 94 fa 04 call 0x9f4
d52: 80 e0 ldi r24, 0x00 ; 0
d54: 0e 94 fa 04 call 0x9f4
d58: 80 e0 ldi r24, 0x00 ; 0
d5a: 0e 94 fa 04 call 0x9f4
d5e: 80 e0 ldi r24, 0x00 ; 0
d60: 0e 94 fa 04 call 0x9f4
*/
static __inline__ void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
d64: c8 01 movw r24, r16
d66: 01 97 sbiw r24, 0x01 ; 1
d68: f1 f7 brne .-4 ; 0xd66
d6a: 89 e2 ldi r24, 0x29 ; 41
d6c: 0e 94 f2 04 call 0x9e4
d70: 8c ea ldi r24, 0xAC ; 172
d72: 0e 94 f2 04 call 0x9e4
d76: 85 e3 ldi r24, 0x35 ; 53
d78: 0e 94 f2 04 call 0x9e4
*/
static __inline__ void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
d7c: c8 01 movw r24, r16
d7e: 01 97 sbiw r24, 0x01 ; 1
d80: f1 f7 brne .-4 ; 0xd7e
d82: 1f 91 pop r17
d84: 0f 91 pop r16
d86: 08 95 ret
00000d88 <PutChar8x16>:
}
#if COLORDEPTH==262
void PutChar8x16(int x, int y, char pFont, uchar bkR, uchar bkG, uchar bkB,uchar ftR, uchar ftG, uchar ftB)
{
d88: 2f 92 push r2
d8a: 3f 92 push r3
d8c: 4f 92 push r4
d8e: 5f 92 push r5
d90: 6f 92 push r6
d92: 7f 92 push r7
d94: 8f 92 push r8
d96: 9f 92 push r9
d98: af 92 push r10
d9a: bf 92 push r11
d9c: cf 92 push r12
d9e: df 92 push r13
da0: ef 92 push r14
da2: ff 92 push r15
da4: 0f 93 push r16
da6: 1f 93 push r17
da8: cf 93 push r28
daa: df 93 push r29
dac: cd b7 in r28, 0x3d ; 61
dae: de b7 in r29, 0x3e ; 62
db0: 22 97 sbiw r28, 0x02 ; 2
db2: 0f b6 in r0, 0x3f ; 63
db4: f8 94 cli
db6: de bf out 0x3e, r29 ; 62
db8: 0f be out 0x3f, r0 ; 63
dba: cd bf out 0x3d, r28 ; 61
dbc: 2c 01 movw r4, r24
dbe: 3b 01 movw r6, r22
dc0: 29 83 std Y+1, r18 ; 0x01
dc2: 0a 83 std Y+2, r16 ; 0x02
dc4: 2e 2c mov r2, r14
dc6: 3c 2c mov r3, r12
dc8: 9a 2c mov r9, r10
int i,j;
unsigned char mask = 0x80;
unsigned char tmp;
const prog_uchar *ptr;
#if FONTTAB
if(pFont<33)
{
pFont = 33;
}
else if(pFont>65)
{
pFont = 65;
}
pFont = pFont-33; // for the font, I need to reduce 32 to get the right font point
// 528 = 33*16;
#endif
ptr = &ascii8x16[pFont];
dca: e4 2e mov r14, r20
dcc: ff 24 eor r15, r15
dce: 84 e0 ldi r24, 0x04 ; 4
dd0: ee 0c add r14, r14
dd2: ff 1c adc r15, r15
dd4: 8a 95 dec r24
dd6: e1 f7 brne .-8 ; 0xdd0
dd8: 8a e7 ldi r24, 0x7A ; 122
dda: 90 e0 ldi r25, 0x00 ; 0
ddc: e8 0e add r14, r24
dde: f9 1e adc r15, r25
for(j=0; j<16; j++)
de0: cc 24 eor r12, r12
de2: dd 24 eor r13, r13
{
mask = 0x80;
de4: 40 e8 ldi r20, 0x80 ; 128
for(i=0; i<8; i++)
de6: 20 e0 ldi r18, 0x00 ; 0
de8: 30 e0 ldi r19, 0x00 ; 0
{
tmp = pgm_read_byte(ptr);
dea: f7 01 movw r30, r14
dec: 84 91 lpm r24, Z
if( tmp&mask)
dee: 84 23 and r24, r20
df0: f2 01 movw r30, r4
df2: e2 0f add r30, r18
df4: f3 1f adc r31, r19
df6: 14 2f mov r17, r20
df8: 16 95 lsr r17
dfa: 59 01 movw r10, r18
dfc: 08 94 sec
dfe: a1 1c adc r10, r1
e00: b1 1c adc r11, r1
e02: 88 23 and r24, r24
e04: 21 f0 breq .+8 ; 0xe0e
{
PutPixel(x+i,y, ftR, ftG, ftB);
e06: 08 2d mov r16, r8
e08: 29 2d mov r18, r9
e0a: 43 2d mov r20, r3
e0c: 03 c0 rjmp .+6 ; 0xe14
}
else
{
//if( !(bkcolor &0x8000) ) // if bkcolor<0, use the default bkcolor
{
PutPixel(x+i, y, bkR, bkG, bkB);
e0e: 02 2d mov r16, r2
e10: 2a 81 ldd r18, Y+2 ; 0x02
e12: 49 81 ldd r20, Y+1 ; 0x01
e14: b3 01 movw r22, r6
e16: cf 01 movw r24, r30
e18: 0e 94 21 05 call 0xa42
}
}
mask>>=1;
e1c: 41 2f mov r20, r17
e1e: 95 01 movw r18, r10
e20: 28 30 cpi r18, 0x08 ; 8
e22: 31 05 cpc r19, r1
e24: 14 f3 brlt .-60 ; 0xdea
}
y++;
e26: 08 94 sec
e28: 61 1c adc r6, r1
e2a: 71 1c adc r7, r1
ptr++;
e2c: 08 94 sec
e2e: e1 1c adc r14, r1
e30: f1 1c adc r15, r1
e32: 08 94 sec
e34: c1 1c adc r12, r1
e36: d1 1c adc r13, r1
e38: f0 e1 ldi r31, 0x10 ; 16
e3a: cf 16 cp r12, r31
e3c: d1 04 cpc r13, r1
e3e: 94 f2 brlt .-92 ; 0xde4
e40: 22 96 adiw r28, 0x02 ; 2
e42: 0f b6 in r0, 0x3f ; 63
e44: f8 94 cli
e46: de bf out 0x3e, r29 ; 62
e48: 0f be out 0x3f, r0 ; 63
e4a: cd bf out 0x3d, r28 ; 61
e4c: df 91 pop r29
e4e: cf 91 pop r28
e50: 1f 91 pop r17
e52: 0f 91 pop r16
e54: ff 90 pop r15
e56: ef 90 pop r14
e58: df 90 pop r13
e5a: cf 90 pop r12
e5c: bf 90 pop r11
e5e: af 90 pop r10
e60: 9f 90 pop r9
e62: 8f 90 pop r8
e64: 7f 90 pop r7
e66: 6f 90 pop r6
e68: 5f 90 pop r5
e6a: 4f 90 pop r4
e6c: 3f 90 pop r3
e6e: 2f 90 pop r2
e70: 08 95 ret
00000e72 <PutString>:
}
}
void PutString(int StartX, int StartY, char *pString, uchar bkR,uchar bkG, uchar bkB, uchar ftR, uchar ftG, uchar ftB)
{
e72: 2f 92 push r2
e74: 3f 92 push r3
e76: 4f 92 push r4
e78: 5f 92 push r5
e7a: 6f 92 push r6
e7c: 7f 92 push r7
e7e: 8f 92 push r8
e80: 9f 92 push r9
e82: af 92 push r10
e84: bf 92 push r11
e86: cf 92 push r12
e88: df 92 push r13
e8a: ef 92 push r14
e8c: ff 92 push r15
e8e: 0f 93 push r16
e90: 1f 93 push r17
e92: cf 93 push r28
e94: df 93 push r29
e96: cd b7 in r28, 0x3d ; 61
e98: de b7 in r29, 0x3e ; 62
e9a: 21 97 sbiw r28, 0x01 ; 1
e9c: 0f b6 in r0, 0x3f ; 63
e9e: f8 94 cli
ea0: de bf out 0x3e, r29 ; 62
ea2: 0f be out 0x3f, r0 ; 63
ea4: cd bf out 0x3d, r28 ; 61
ea6: 1a 01 movw r2, r20
ea8: 29 83 std Y+1, r18 ; 0x01
eaa: 90 2e mov r9, r16
eac: be 2c mov r11, r14
eae: dc 2c mov r13, r12
eb0: fa 2c mov r15, r10
eb2: 18 2d mov r17, r8
int x,y;
x = StartX;
eb4: 3c 01 movw r6, r24
y = StartY;
eb6: 2b 01 movw r4, r22
do
{
PutChar8x16(x, y, *pString, bkR, bkG, bkB, ftR, ftG, ftB);
eb8: 81 2e mov r8, r17
eba: af 2c mov r10, r15
ebc: cd 2c mov r12, r13
ebe: eb 2c mov r14, r11
ec0: 09 2d mov r16, r9
ec2: 29 81 ldd r18, Y+1 ; 0x01
ec4: f1 01 movw r30, r2
ec6: 41 91 ld r20, Z+
ec8: 1f 01 movw r2, r30
eca: b2 01 movw r22, r4
ecc: c3 01 movw r24, r6
ece: 0e 94 c4 06 call 0xd88
x+=8;
ed2: 88 e0 ldi r24, 0x08 ; 8
ed4: 90 e0 ldi r25, 0x00 ; 0
ed6: 68 0e add r6, r24
ed8: 79 1e adc r7, r25
pString++;
if(x>=176)
eda: 90 eb ldi r25, 0xB0 ; 176
edc: 69 16 cp r6, r25
ede: 71 04 cpc r7, r1
ee0: 64 f0 brlt .+24 ; 0xefa
{
y+=16;
ee2: e0 e1 ldi r30, 0x10 ; 16
ee4: f0 e0 ldi r31, 0x00 ; 0
ee6: 4e 0e add r4, r30
ee8: 5f 1e adc r5, r31
if(y>=132) // 显示位置是从144开始,y方向累加是在子程序操作中
eea: f4 e8 ldi r31, 0x84 ; 132
eec: 4f 16 cp r4, r31
eee: 51 04 cpc r5, r1
ef0: 14 f0 brlt .+4 ; 0xef6
{
x = 0;
y = 0;
ef2: 44 24 eor r4, r4
ef4: 55 24 eor r5, r5
}
x = 0;
ef6: 66 24 eor r6, r6
ef8: 77 24 eor r7, r7
}
}while(*pString);
efa: f1 01 movw r30, r2
efc: 80 81 ld r24, Z
efe: 88 23 and r24, r24
f00: d9 f6 brne .-74 ; 0xeb8
f02: 21 96 adiw r28, 0x01 ; 1
f04: 0f b6 in r0, 0x3f ; 63
f06: f8 94 cli
f08: de bf out 0x3e, r29 ; 62
f0a: 0f be out 0x3f, r0 ; 63
f0c: cd bf out 0x3d, r28 ; 61
f0e: df 91 pop r29
f10: cf 91 pop r28
f12: 1f 91 pop r17
f14: 0f 91 pop r16
f16: ff 90 pop r15
f18: ef 90 pop r14
f1a: df 90 pop r13
f1c: cf 90 pop r12
f1e: bf 90 pop r11
f20: af 90 pop r10
f22: 9f 90 pop r9
f24: 8f 90 pop r8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -