📄 ks0108.lss
字号:
bb8: 11 27 eor r17, r17
bba: ee 24 eor r14, r14
bbc: ff 24 eor r15, r15
{
SetPageCol(uPage,uCol+j);
bbe: 89 2d mov r24, r9
bc0: 8d 0d add r24, r13
bc2: 68 2f mov r22, r24
bc4: 88 2d mov r24, r8
bc6: 0e 94 27 04 call 0x84e <SetPageCol>
ch_w=GB_16[k].Msk[j];
bca: 6b 2c mov r6, r11
bcc: 77 24 eor r7, r7
bce: 8a e1 ldi r24, 0x1A ; 26
bd0: 90 e0 ldi r25, 0x00 ; 0
bd2: 68 9e mul r6, r24
bd4: f0 01 movw r30, r0
bd6: 69 9e mul r6, r25
bd8: f0 0d add r31, r0
bda: 78 9e mul r7, r24
bdc: f0 0d add r31, r0
bde: 11 24 eor r1, r1
be0: ee 0d add r30, r14
be2: ff 1d adc r31, r15
be4: ec 5a subi r30, 0xAC ; 172
be6: ff 4f sbci r31, 0xFF ; 255
be8: c2 81 ldd r28, Z+2 ; 0x02
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
bea: 00 34 cpi r16, 0x40 ; 64
bec: 11 05 cpc r17, r1
bee: 24 f4 brge .+8 ; 0xbf8 <disp_hz+0x98>
bf0: 4c 2f mov r20, r28
bf2: 61 e0 ldi r22, 0x01 ; 1
bf4: 80 e0 ldi r24, 0x00 ; 0
bf6: 03 c0 rjmp .+6 ; 0xbfe <disp_hz+0x9e>
else write_LCD(RIGHT,DATA,ch_w);
bf8: 4c 2f mov r20, r28
bfa: 61 e0 ldi r22, 0x01 ; 1
bfc: 86 2f mov r24, r22
bfe: 0e 94 e2 02 call 0x5c4 <write_LCD>
c02: d3 94 inc r13
c04: 08 94 sec
c06: e1 1c adc r14, r1
c08: f1 1c adc r15, r1
c0a: 0f 5f subi r16, 0xFF ; 255
c0c: 1f 4f sbci r17, 0xFF ; 255
c0e: 8b e0 ldi r24, 0x0B ; 11
c10: 8d 15 cp r24, r13
c12: a8 f6 brcc .-86 ; 0xbbe <disp_hz+0x5e>
}
SetPageCol(uPage+1,uCol);
c14: 69 2d mov r22, r9
c16: 88 2d mov r24, r8
c18: 8f 5f subi r24, 0xFF ; 255
c1a: 0e 94 27 04 call 0x84e <SetPageCol>
for(j=0;j<ASC_HZ_WIDTH;j++)
c1e: dd 24 eor r13, r13
c20: ee 24 eor r14, r14
c22: ff 24 eor r15, r15
{
SetPageCol(uPage+1,uCol+j);
c24: c9 2c mov r12, r9
c26: cd 0c add r12, r13
c28: b8 2c mov r11, r8
c2a: b3 94 inc r11
c2c: 6c 2d mov r22, r12
c2e: 8b 2d mov r24, r11
c30: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) ch_r=read_LCD(LEFT);
c34: 09 2d mov r16, r9
c36: 11 27 eor r17, r17
c38: c8 01 movw r24, r16
c3a: 8e 0d add r24, r14
c3c: 9f 1d adc r25, r15
c3e: 80 34 cpi r24, 0x40 ; 64
c40: 91 05 cpc r25, r1
c42: 14 f4 brge .+4 ; 0xc48 <disp_hz+0xe8>
c44: 80 e0 ldi r24, 0x00 ; 0
c46: 01 c0 rjmp .+2 ; 0xc4a <disp_hz+0xea>
else ch_r=read_LCD(RIGHT);
c48: 81 e0 ldi r24, 0x01 ; 1
c4a: 0e 94 2d 03 call 0x65a <read_LCD>
c4e: 28 2f mov r18, r24
ch_r&=0xf0;
c50: 20 7f andi r18, 0xF0 ; 240
ch_w=GB_16[k].Msk[ASC_HZ_WIDTH+j]&0x0f;
c52: 8a e1 ldi r24, 0x1A ; 26
c54: 90 e0 ldi r25, 0x00 ; 0
c56: 68 9e mul r6, r24
c58: f0 01 movw r30, r0
c5a: 69 9e mul r6, r25
c5c: f0 0d add r31, r0
c5e: 78 9e mul r7, r24
c60: f0 0d add r31, r0
c62: 11 24 eor r1, r1
c64: ee 0d add r30, r14
c66: ff 1d adc r31, r15
c68: ec 5a subi r30, 0xAC ; 172
c6a: ff 4f sbci r31, 0xFF ; 255
c6c: c6 85 ldd r28, Z+14 ; 0x0e
c6e: cf 70 andi r28, 0x0F ; 15
ch_w|=ch_r;
c70: c2 2b or r28, r18
SetPageCol(uPage+1,uCol+j);
c72: 6c 2d mov r22, r12
c74: 8b 2d mov r24, r11
c76: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
c7a: 0e 0d add r16, r14
c7c: 1f 1d adc r17, r15
c7e: 00 34 cpi r16, 0x40 ; 64
c80: 11 05 cpc r17, r1
c82: 24 f4 brge .+8 ; 0xc8c <disp_hz+0x12c>
c84: 4c 2f mov r20, r28
c86: 61 e0 ldi r22, 0x01 ; 1
c88: 80 e0 ldi r24, 0x00 ; 0
c8a: 03 c0 rjmp .+6 ; 0xc92 <disp_hz+0x132>
else write_LCD(RIGHT,DATA,ch_w);
c8c: 4c 2f mov r20, r28
c8e: 61 e0 ldi r22, 0x01 ; 1
c90: 86 2f mov r24, r22
c92: 0e 94 e2 02 call 0x5c4 <write_LCD>
c96: d3 94 inc r13
c98: 08 94 sec
c9a: e1 1c adc r14, r1
c9c: f1 1c adc r15, r1
c9e: 8b e0 ldi r24, 0x0B ; 11
ca0: 8d 15 cp r24, r13
ca2: 08 f0 brcs .+2 ; 0xca6 <disp_hz+0x146>
ca4: bf cf rjmp .-130 ; 0xc24 <disp_hz+0xc4>
ca6: 85 c0 rjmp .+266 ; 0xdb2 <disp_hz+0x252>
}
SetPageCol(uPage,uCol+ASC_HZ_WIDTH);
}
else //汉字上半部是写半个字节
{
for(j=0;j<ASC_HZ_WIDTH;j++)
ca8: dd 24 eor r13, r13
caa: ee 24 eor r14, r14
cac: ff 24 eor r15, r15
{
SetPageCol(uPage,uCol+j);
cae: c9 2c mov r12, r9
cb0: cd 0c add r12, r13
cb2: 6c 2d mov r22, r12
cb4: 88 2d mov r24, r8
cb6: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) ch_r=read_LCD(LEFT);
cba: 09 2d mov r16, r9
cbc: 11 27 eor r17, r17
cbe: c8 01 movw r24, r16
cc0: 8e 0d add r24, r14
cc2: 9f 1d adc r25, r15
cc4: 80 34 cpi r24, 0x40 ; 64
cc6: 91 05 cpc r25, r1
cc8: 14 f4 brge .+4 ; 0xcce <disp_hz+0x16e>
cca: 80 e0 ldi r24, 0x00 ; 0
ccc: 01 c0 rjmp .+2 ; 0xcd0 <disp_hz+0x170>
else ch_r=read_LCD(RIGHT);
cce: 81 e0 ldi r24, 0x01 ; 1
cd0: 0e 94 2d 03 call 0x65a <read_LCD>
cd4: 28 2f mov r18, r24
ch_r&=0x0f;
cd6: 2f 70 andi r18, 0x0F ; 15
ch_w=GB_16[k].Msk[j];
cd8: 6b 2c mov r6, r11
cda: 77 24 eor r7, r7
cdc: 8a e1 ldi r24, 0x1A ; 26
cde: 90 e0 ldi r25, 0x00 ; 0
ce0: 68 9e mul r6, r24
ce2: f0 01 movw r30, r0
ce4: 69 9e mul r6, r25
ce6: f0 0d add r31, r0
ce8: 78 9e mul r7, r24
cea: f0 0d add r31, r0
cec: 11 24 eor r1, r1
cee: ee 0d add r30, r14
cf0: ff 1d adc r31, r15
cf2: ec 5a subi r30, 0xAC ; 172
cf4: ff 4f sbci r31, 0xFF ; 255
cf6: c2 81 ldd r28, Z+2 ; 0x02
ch_w=ch_w<<4;
cf8: c2 95 swap r28
cfa: c0 7f andi r28, 0xF0 ; 240
ch_w|=ch_r;
cfc: c2 2b or r28, r18
SetPageCol(uPage,uCol+j);
cfe: 6c 2d mov r22, r12
d00: 88 2d mov r24, r8
d02: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
d06: c8 01 movw r24, r16
d08: 8e 0d add r24, r14
d0a: 9f 1d adc r25, r15
d0c: 80 34 cpi r24, 0x40 ; 64
d0e: 91 05 cpc r25, r1
d10: 24 f4 brge .+8 ; 0xd1a <disp_hz+0x1ba>
d12: 4c 2f mov r20, r28
d14: 61 e0 ldi r22, 0x01 ; 1
d16: 80 e0 ldi r24, 0x00 ; 0
d18: 03 c0 rjmp .+6 ; 0xd20 <disp_hz+0x1c0>
else write_LCD(RIGHT,DATA,ch_w);
d1a: 4c 2f mov r20, r28
d1c: 61 e0 ldi r22, 0x01 ; 1
d1e: 86 2f mov r24, r22
d20: 0e 94 e2 02 call 0x5c4 <write_LCD>
d24: d3 94 inc r13
d26: 08 94 sec
d28: e1 1c adc r14, r1
d2a: f1 1c adc r15, r1
d2c: 8b e0 ldi r24, 0x0B ; 11
d2e: 8d 15 cp r24, r13
d30: 08 f0 brcs .+2 ; 0xd34 <disp_hz+0x1d4>
d32: bd cf rjmp .-134 ; 0xcae <disp_hz+0x14e>
}
SetPageCol(uPage+1,uCol);
d34: c8 2c mov r12, r8
d36: c3 94 inc r12
d38: 69 2d mov r22, r9
d3a: 8c 2d mov r24, r12
d3c: 0e 94 27 04 call 0x84e <SetPageCol>
for(j=0;j<ASC_HZ_WIDTH;j++)
d40: dd 24 eor r13, r13
d42: 78 01 movw r14, r16
d44: aa 24 eor r10, r10
d46: bb 24 eor r11, r11
{
SetPageCol(uPage+1,uCol+j);
d48: 19 2d mov r17, r9
d4a: 1d 0d add r17, r13
d4c: 61 2f mov r22, r17
d4e: 8c 2d mov r24, r12
d50: 0e 94 27 04 call 0x84e <SetPageCol>
ch_r=GB_16[k].Msk[j];
d54: 8a e1 ldi r24, 0x1A ; 26
d56: 90 e0 ldi r25, 0x00 ; 0
d58: 68 9e mul r6, r24
d5a: f0 01 movw r30, r0
d5c: 69 9e mul r6, r25
d5e: f0 0d add r31, r0
d60: 78 9e mul r7, r24
d62: f0 0d add r31, r0
d64: 11 24 eor r1, r1
d66: ea 0d add r30, r10
d68: fb 1d adc r31, r11
d6a: ec 5a subi r30, 0xAC ; 172
d6c: ff 4f sbci r31, 0xFF ; 255
d6e: 22 81 ldd r18, Z+2 ; 0x02
ch_w=GB_16[k].Msk[ASC_HZ_WIDTH+j];
d70: c6 85 ldd r28, Z+14 ; 0x0e
ch_r=ch_r>>4;
d72: 22 95 swap r18
d74: 2f 70 andi r18, 0x0F ; 15
ch_w=ch_w<<4;
d76: c2 95 swap r28
d78: c0 7f andi r28, 0xF0 ; 240
ch_w|=ch_r;
d7a: c2 2b or r28, r18
SetPageCol(uPage+1,uCol+j);
d7c: 61 2f mov r22, r17
d7e: 8c 2d mov r24, r12
d80: 0e 94 27 04 call 0x84e <SetPageCol>
if(uCol+j<64) write_LCD(LEFT,DATA,ch_w);
d84: 80 e4 ldi r24, 0x40 ; 64
d86: e8 16 cp r14, r24
d88: f1 04 cpc r15, r1
d8a: 24 f4 brge .+8 ; 0xd94 <disp_hz+0x234>
d8c: 4c 2f mov r20, r28
d8e: 61 e0 ldi r22, 0x01 ; 1
d90: 80 e0 ldi r24, 0x00 ; 0
d92: 03 c0 rjmp .+6 ; 0xd9a <disp_hz+0x23a>
else write_LCD(RIGHT,DATA,ch_w);
d94: 4c 2f mov r20, r28
d96: 61 e0 ldi r22, 0x01 ; 1
d98: 86 2f mov r24, r22
d9a: 0e 94 e2 02 call 0x5c4 <write_LCD>
d9e: d3 94 inc r13
da0: 08 94 sec
da2: a1 1c adc r10, r1
da4: b1 1c adc r11, r1
da6: 08 94 sec
da8: e1 1c adc r14, r1
daa: f1 1c adc r15, r1
dac: 8b e0 ldi r24, 0x0B ; 11
dae: 8d 15 cp r24, r13
db0: 58 f6 brcc .-106 ; 0xd48 <disp_hz+0x1e8>
}
SetPageCol(uPage,uCol+ASC_HZ_WIDTH);
db2: 89 2d mov r24, r9
db4: 84 5f subi r24, 0xF4 ; 244
db6: 68 2f mov r22, r24
db8: 88 2d mov r24, r8
dba: 0e 94 27 04 call 0x84e <SetPageCol>
dbe: df 91 pop r29
dc0: cf 91 pop r28
dc2: 1f 91 pop r17
dc4: 0f 91 pop r16
dc6: ff 90 pop r15
dc8: ef 90 pop r14
dca: df 90 pop r13
dcc: cf 90 pop r12
dce: bf 90 pop r11
dd0: af 90 pop r10
dd2: 9f 90 pop r9
dd4: 8f 90 pop r8
dd6: 7f 90 pop r7
dd8: 6f 90 pop r6
dda: 08 95 ret
00000ddc <disp_str>:
}
}
void disp_str(unsigned char *p)
{
ddc: 1f 93 push r17
dde: cf 93 push r28
de0: df 93 push r29
de2: ec 01 movw r28, r24
unsigned char i=0;
de4: 10 e0 ldi r17, 0x00 ; 0
while(p[i]>0)
{
if(p[i] < 128)
{ /* ASCII */
disp_ch(p[i]);
}
else
{ /* 中文 */
disp_hz(&p[i]);
i++;
}
i++;
de6: 88 81 ld r24, Y
de8: 88 23 and r24, r24
dea: a1 f0 breq .+40 ; 0xe14 <disp_str+0x38>
dec: fe 01 movw r30, r28
dee: e1 0f add r30, r17
df0: f1 1d adc r31, r1
df2: 80 81 ld r24, Z
df4: 87 fd sbrc r24, 7
df6: 03 c0 rjmp .+6 ; 0xdfe <disp_str+0x22>
df8: 0e 94 65 04 call 0x8ca <disp_ch>
dfc: 04 c0 rjmp .+8 ; 0x
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -