📄 ks0108.lss
字号:
966: e8 5d subi r30, 0xD8 ; 216
968: fd 4f sbci r31, 0xFD ; 253
96a: c1 81 ldd r28, Z+1 ; 0x01
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
96c: 00 34 cpi r16, 0x40 ; 64
96e: 11 05 cpc r17, r1
970: 24 f4 brge .+8 ; 0x97a <disp_ch+0xb0>
972: 4c 2f mov r20, r28
974: 61 e0 ldi r22, 0x01 ; 1
976: 80 e0 ldi r24, 0x00 ; 0
978: 03 c0 rjmp .+6 ; 0x980 <disp_ch+0xb6>
else write_LCD(RIGHT,DATA,ch_w);
97a: 4c 2f mov r20, r28
97c: 61 e0 ldi r22, 0x01 ; 1
97e: 86 2f mov r24, r22
980: 0e 94 e2 02 call 0x5c4 <write_LCD>
984: d3 94 inc r13
986: 08 94 sec
988: e1 1c adc r14, r1
98a: f1 1c adc r15, r1
98c: 0f 5f subi r16, 0xFF ; 255
98e: 1f 4f sbci r17, 0xFF ; 255
990: d8 14 cp r13, r8
992: b8 f2 brcs .-82 ; 0x942 <disp_ch+0x78>
}
SetPageCol(uPage+1,uCol);
994: 6c 2d mov r22, r12
996: 89 2d mov r24, r9
998: 8f 5f subi r24, 0xFF ; 255
99a: 0e 94 27 04 call 0x84e <SetPageCol>
for(j=0;j<width;j++)
99e: dd 24 eor r13, r13
9a0: d8 14 cp r13, r8
9a2: 08 f0 brcs .+2 ; 0x9a6 <disp_ch+0xdc>
9a4: cb c0 rjmp .+406 ; 0xb3c <disp_ch+0x272>
9a6: ee 24 eor r14, r14
9a8: ff 24 eor r15, r15
{
SetPageCol(uPage+1,uCol+j);
9aa: bc 2c mov r11, r12
9ac: bd 0c add r11, r13
9ae: a9 2c mov r10, r9
9b0: a3 94 inc r10
9b2: 6b 2d mov r22, r11
9b4: 8a 2d mov r24, r10
9b6: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) ch_r=read_LCD(LEFT);
9ba: 0c 2d mov r16, r12
9bc: 11 27 eor r17, r17
9be: c8 01 movw r24, r16
9c0: 8e 0d add r24, r14
9c2: 9f 1d adc r25, r15
9c4: 80 34 cpi r24, 0x40 ; 64
9c6: 91 05 cpc r25, r1
9c8: 14 f4 brge .+4 ; 0x9ce <disp_ch+0x104>
9ca: 80 e0 ldi r24, 0x00 ; 0
9cc: 01 c0 rjmp .+2 ; 0x9d0 <disp_ch+0x106>
else ch_r=read_LCD(RIGHT);
9ce: 81 e0 ldi r24, 0x01 ; 1
9d0: 0e 94 2d 03 call 0x65a <read_LCD>
9d4: 28 2f mov r18, r24
ch_r&=0xf0;
9d6: 20 7f andi r18, 0xF0 ; 240
ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH+j]&0x0f;
9d8: 87 2d mov r24, r7
9da: 99 27 eor r25, r25
9dc: fc 01 movw r30, r24
9de: 44 e0 ldi r20, 0x04 ; 4
9e0: ee 0f add r30, r30
9e2: ff 1f adc r31, r31
9e4: 4a 95 dec r20
9e6: e1 f7 brne .-8 ; 0x9e0 <disp_ch+0x116>
9e8: e8 0f add r30, r24
9ea: f9 1f adc r31, r25
9ec: ee 0d add r30, r14
9ee: ff 1d adc r31, r15
9f0: e8 5d subi r30, 0xD8 ; 216
9f2: fd 4f sbci r31, 0xFD ; 253
9f4: c1 85 ldd r28, Z+9 ; 0x09
9f6: cf 70 andi r28, 0x0F ; 15
ch_w|=ch_r;
9f8: c2 2b or r28, r18
SetPageCol(uPage+1,uCol+j);
9fa: 6b 2d mov r22, r11
9fc: 8a 2d mov r24, r10
9fe: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
a02: 0e 0d add r16, r14
a04: 1f 1d adc r17, r15
a06: 00 34 cpi r16, 0x40 ; 64
a08: 11 05 cpc r17, r1
a0a: 24 f4 brge .+8 ; 0xa14 <disp_ch+0x14a>
a0c: 4c 2f mov r20, r28
a0e: 61 e0 ldi r22, 0x01 ; 1
a10: 80 e0 ldi r24, 0x00 ; 0
a12: 03 c0 rjmp .+6 ; 0xa1a <disp_ch+0x150>
else write_LCD(RIGHT,DATA,ch_w);
a14: 4c 2f mov r20, r28
a16: 61 e0 ldi r22, 0x01 ; 1
a18: 86 2f mov r24, r22
a1a: 0e 94 e2 02 call 0x5c4 <write_LCD>
a1e: d3 94 inc r13
a20: 08 94 sec
a22: e1 1c adc r14, r1
a24: f1 1c adc r15, r1
a26: d8 14 cp r13, r8
a28: 08 f4 brcc .+2 ; 0xa2c <disp_ch+0x162>
a2a: bf cf rjmp .-130 ; 0x9aa <disp_ch+0xe0>
a2c: 87 c0 rjmp .+270 ; 0xb3c <disp_ch+0x272>
}
}
else //上半部是写半个字节
{
for(j=0;j<width;j++)
a2e: dd 24 eor r13, r13
a30: d8 14 cp r13, r8
a32: 08 f0 brcs .+2 ; 0xa36 <disp_ch+0x16c>
a34: 41 c0 rjmp .+130 ; 0xab8 <disp_ch+0x1ee>
a36: ee 24 eor r14, r14
a38: ff 24 eor r15, r15
{
SetPageCol(uPage,uCol+j);
a3a: bc 2c mov r11, r12
a3c: bd 0c add r11, r13
a3e: 6b 2d mov r22, r11
a40: 89 2d mov r24, r9
a42: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) ch_r=read_LCD(LEFT);
a46: 0c 2d mov r16, r12
a48: 11 27 eor r17, r17
a4a: c8 01 movw r24, r16
a4c: 8e 0d add r24, r14
a4e: 9f 1d adc r25, r15
a50: 80 34 cpi r24, 0x40 ; 64
a52: 91 05 cpc r25, r1
a54: 14 f4 brge .+4 ; 0xa5a <disp_ch+0x190>
a56: 80 e0 ldi r24, 0x00 ; 0
a58: 01 c0 rjmp .+2 ; 0xa5c <disp_ch+0x192>
else ch_r=read_LCD(RIGHT);
a5a: 81 e0 ldi r24, 0x01 ; 1
a5c: 0e 94 2d 03 call 0x65a <read_LCD>
a60: 28 2f mov r18, r24
ch_r&=0x0f;
a62: 2f 70 andi r18, 0x0F ; 15
ch_w=ASC_16[k].Msk[j];
a64: 87 2d mov r24, r7
a66: 99 27 eor r25, r25
a68: fc 01 movw r30, r24
a6a: 34 e0 ldi r19, 0x04 ; 4
a6c: ee 0f add r30, r30
a6e: ff 1f adc r31, r31
a70: 3a 95 dec r19
a72: e1 f7 brne .-8 ; 0xa6c <disp_ch+0x1a2>
a74: e8 0f add r30, r24
a76: f9 1f adc r31, r25
a78: ee 0d add r30, r14
a7a: ff 1d adc r31, r15
a7c: e8 5d subi r30, 0xD8 ; 216
a7e: fd 4f sbci r31, 0xFD ; 253
a80: c1 81 ldd r28, Z+1 ; 0x01
ch_w=ch_w<<4;
a82: c2 95 swap r28
a84: c0 7f andi r28, 0xF0 ; 240
ch_w|=ch_r;
a86: c2 2b or r28, r18
SetPageCol(uPage,uCol+j);
a88: 6b 2d mov r22, r11
a8a: 89 2d mov r24, r9
a8c: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
a90: 0e 0d add r16, r14
a92: 1f 1d adc r17, r15
a94: 00 34 cpi r16, 0x40 ; 64
a96: 11 05 cpc r17, r1
a98: 24 f4 brge .+8 ; 0xaa2 <disp_ch+0x1d8>
a9a: 4c 2f mov r20, r28
a9c: 61 e0 ldi r22, 0x01 ; 1
a9e: 80 e0 ldi r24, 0x00 ; 0
aa0: 03 c0 rjmp .+6 ; 0xaa8 <disp_ch+0x1de>
else write_LCD(RIGHT,DATA,ch_w);
aa2: 4c 2f mov r20, r28
aa4: 61 e0 ldi r22, 0x01 ; 1
aa6: 86 2f mov r24, r22
aa8: 0e 94 e2 02 call 0x5c4 <write_LCD>
aac: d3 94 inc r13
aae: 08 94 sec
ab0: e1 1c adc r14, r1
ab2: f1 1c adc r15, r1
ab4: d8 14 cp r13, r8
ab6: 08 f2 brcs .-126 ; 0xa3a <disp_ch+0x170>
}
SetPageCol(uPage+1,uCol);
ab8: 09 2d mov r16, r9
aba: 0f 5f subi r16, 0xFF ; 255
abc: 6c 2d mov r22, r12
abe: 80 2f mov r24, r16
ac0: 0e 94 27 04 call 0x84e <SetPageCol>
for(j=0;j<width;j++)
ac4: dd 24 eor r13, r13
ac6: d8 14 cp r13, r8
ac8: c8 f5 brcc .+114 ; 0xb3c <disp_ch+0x272>
aca: ec 2c mov r14, r12
acc: ff 24 eor r15, r15
ace: aa 24 eor r10, r10
ad0: bb 24 eor r11, r11
{
SetPageCol(uPage+1,uCol+j);
ad2: 1c 2d mov r17, r12
ad4: 1d 0d add r17, r13
ad6: 61 2f mov r22, r17
ad8: 80 2f mov r24, r16
ada: 0e 94 27 04 call 0x84e <SetPageCol>
ch_r=ASC_16[k].Msk[j];
ade: 87 2d mov r24, r7
ae0: 99 27 eor r25, r25
ae2: fc 01 movw r30, r24
ae4: 24 e0 ldi r18, 0x04 ; 4
ae6: ee 0f add r30, r30
ae8: ff 1f adc r31, r31
aea: 2a 95 dec r18
aec: e1 f7 brne .-8 ; 0xae6 <disp_ch+0x21c>
aee: e8 0f add r30, r24
af0: f9 1f adc r31, r25
af2: ea 0d add r30, r10
af4: fb 1d adc r31, r11
af6: e8 5d subi r30, 0xD8 ; 216
af8: fd 4f sbci r31, 0xFD ; 253
afa: 21 81 ldd r18, Z+1 ; 0x01
ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH+j];
afc: c1 85 ldd r28, Z+9 ; 0x09
ch_r=ch_r>>4;
afe: 22 95 swap r18
b00: 2f 70 andi r18, 0x0F ; 15
ch_w=ch_w<<4;
b02: c2 95 swap r28
b04: c0 7f andi r28, 0xF0 ; 240
ch_w|=ch_r;
b06: c2 2b or r28, r18
SetPageCol(uPage+1,uCol+j);
b08: 61 2f mov r22, r17
b0a: 80 2f mov r24, r16
b0c: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
b10: 80 e4 ldi r24, 0x40 ; 64
b12: e8 16 cp r14, r24
b14: f1 04 cpc r15, r1
b16: 24 f4 brge .+8 ; 0xb20 <disp_ch+0x256>
b18: 4c 2f mov r20, r28
b1a: 61 e0 ldi r22, 0x01 ; 1
b1c: 80 e0 ldi r24, 0x00 ; 0
b1e: 03 c0 rjmp .+6 ; 0xb26 <disp_ch+0x25c>
else write_LCD(RIGHT,DATA,ch_w);
b20: 4c 2f mov r20, r28
b22: 61 e0 ldi r22, 0x01 ; 1
b24: 86 2f mov r24, r22
b26: 0e 94 e2 02 call 0x5c4 <write_LCD>
b2a: d3 94 inc r13
b2c: 08 94 sec
b2e: a1 1c adc r10, r1
b30: b1 1c adc r11, r1
b32: 08 94 sec
b34: e1 1c adc r14, r1
b36: f1 1c adc r15, r1
b38: d8 14 cp r13, r8
b3a: 58 f2 brcs .-106 ; 0xad2 <disp_ch+0x208>
}
}
}
SetPageCol(uPage,uCol+width);
b3c: 8c 0c add r8, r12
b3e: 68 2d mov r22, r8
b40: 89 2d mov r24, r9
b42: 0e 94 27 04 call 0x84e <SetPageCol>
b46: cf 91 pop r28
b48: 1f 91 pop r17
b4a: 0f 91 pop r16
b4c: ff 90 pop r15
b4e: ef 90 pop r14
b50: df 90 pop r13
b52: cf 90 pop r12
b54: bf 90 pop r11
b56: af 90 pop r10
b58: 9f 90 pop r9
b5a: 8f 90 pop r8
b5c: 7f 90 pop r7
b5e: 08 95 ret
00000b60 <disp_hz>:
}
void disp_hz(unsigned char *hz)
{
b60: 6f 92 push r6
b62: 7f 92 push r7
b64: 8f 92 push r8
b66: 9f 92 push r9
b68: af 92 push r10
b6a: bf 92 push r11
b6c: cf 92 push r12
b6e: df 92 push r13
b70: ef 92 push r14
b72: ff 92 push r15
b74: 0f 93 push r16
b76: 1f 93 push r17
b78: cf 93 push r28
b7a: df 93 push r29
b7c: ec 01 movw r28, r24
unsigned char k,j,uPage,uCol,ch_r,ch_w;
uPage = GetPage();
b7e: 0e 94 1f 04 call 0x83e <GetPage>
b82: 88 2e mov r8, r24
uCol = GetCol();
b84: 0e 94 23 04 call 0x846 <GetCol>
b88: 98 2e mov r9, r24
for(k=0;k<sizeof(GB_16)/sizeof(GB_16[0]);k++)
b8a: bb 24 eor r11, r11
b8c: 28 81 ld r18, Y
b8e: e4 e5 ldi r30, 0x54 ; 84
b90: f0 e0 ldi r31, 0x00 ; 0
{
if(hz[0] == GB_16[k].Index[0] && hz[1] == GB_16[k].Index[1])
b92: 80 81 ld r24, Z
b94: 28 17 cp r18, r24
b96: 21 f4 brne .+8 ; 0xba0 <disp_hz+0x40>
b98: 99 81 ldd r25, Y+1 ; 0x01
b9a: 81 81 ldd r24, Z+1 ; 0x01
b9c: 98 17 cp r25, r24
b9e: 29 f0 breq .+10 ; 0xbaa <disp_hz+0x4a>
ba0: b3 94 inc r11
ba2: 7a 96 adiw r30, 0x1a ; 26
ba4: 81 e1 ldi r24, 0x11 ; 17
ba6: 8b 15 cp r24, r11
ba8: a0 f7 brcc .-24 ; 0xb92 <disp_hz+0x32>
break;
}
if(CurOffset==1)
baa: 80 91 c8 00 lds r24, 0x00C8
bae: 81 30 cpi r24, 0x01 ; 1
bb0: 09 f0 breq .+2 ; 0xbb4 <disp_hz+0x54>
bb2: 7a c0 rjmp .+244 ; 0xca8 <disp_hz+0x148>
{
for(j=0;j<ASC_HZ_WIDTH;j++)
bb4: dd 24 eor r13, r13
bb6: 09 2d mov r16, r9
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -