📄 main.lss
字号:
case 0:addr=0x80+x;break;
61e: 32 2f mov r19, r18
620: 30 58 subi r19, 0x80 ; 128
622: 08 c0 rjmp .+16 ; 0x634 <locatexy_12864+0x3c>
case 1:addr=0x90+x;break;
624: 32 2f mov r19, r18
626: 30 57 subi r19, 0x70 ; 112
628: 05 c0 rjmp .+10 ; 0x634 <locatexy_12864+0x3c>
case 2:addr=0x88+x;break;
62a: 32 2f mov r19, r18
62c: 38 57 subi r19, 0x78 ; 120
62e: 02 c0 rjmp .+4 ; 0x634 <locatexy_12864+0x3c>
case 3:addr=0x98+x;break;
630: 32 2f mov r19, r18
632: 38 56 subi r19, 0x68 ; 104
default:break;
}
writecomm_12864(addr);
634: 83 2f mov r24, r19
636: 0e 94 a9 02 call 0x552 <writecomm_12864>
63a: 08 95 ret
0000063c <disonechar_12864>:
}
//*************函数部分***************/
/* 名字:disonechar_12864() */
/* 功能:显示一个字符 */
/* 局部变量:x,y,char1 */
/* 全局变量:无 */
/* 返回值: 无 */
//************************************/
void disonechar_12864(uchar x,uchar y,uchar char1)
{
63c: cf 93 push r28
63e: c4 2f mov r28, r20
locatexy_12864(x,y);
640: 0e 94 fc 02 call 0x5f8 <locatexy_12864>
writedata_12864(char1);
644: 8c 2f mov r24, r28
646: 0e 94 c3 02 call 0x586 <writedata_12864>
64a: cf 91 pop r28
64c: 08 95 ret
0000064e <distwochar_12864>:
}
//*************函数部分***************/
/* 名字:distwochar_12864() */
/* 功能:显示两个字符即一个汉字 */
/* 局部变量:x,y,char1,char2 */
/* 全局变量:无 */
/* 返回值: 无 */
//************************************/
void distwochar_12864(uchar x,uchar y,uchar char1,uchar char2)
{
64e: cf 93 push r28
650: df 93 push r29
652: cd b7 in r28, 0x3d ; 61
654: de b7 in r29, 0x3e ; 62
656: 22 97 sbiw r28, 0x02 ; 2
658: 0f b6 in r0, 0x3f ; 63
65a: f8 94 cli
65c: de bf out 0x3e, r29 ; 62
65e: 0f be out 0x3f, r0 ; 63
660: cd bf out 0x3d, r28 ; 61
662: 4a 83 std Y+2, r20 ; 0x02
664: 29 83 std Y+1, r18 ; 0x01
locatexy_12864(x,y);
666: 0e 94 fc 02 call 0x5f8 <locatexy_12864>
writedata_12864(char1);
66a: 8a 81 ldd r24, Y+2 ; 0x02
66c: 0e 94 c3 02 call 0x586 <writedata_12864>
writedata_12864(char2);
670: 89 81 ldd r24, Y+1 ; 0x01
672: 0e 94 c3 02 call 0x586 <writedata_12864>
676: 22 96 adiw r28, 0x02 ; 2
678: 0f b6 in r0, 0x3f ; 63
67a: f8 94 cli
67c: de bf out 0x3e, r29 ; 62
67e: 0f be out 0x3f, r0 ; 63
680: cd bf out 0x3d, r28 ; 61
682: df 91 pop r29
684: cf 91 pop r28
686: 08 95 ret
00000688 <dispstr_12864>:
}
//*************函数部分***************/
/* 名字:dispstr_12864() */
/* 功能:显示汉字字组 */
/* 局部变量:x,y,*pstr */
/* 全局变量:无 */
/* 返回值: 无 */
//************************************/
void dispstr_12864(uchar x,uchar y,uchar *pstr)
{
688: cf 93 push r28
68a: df 93 push r29
68c: cd b7 in r28, 0x3d ; 61
68e: de b7 in r29, 0x3e ; 62
690: 24 97 sbiw r28, 0x04 ; 4
692: 0f b6 in r0, 0x3f ; 63
694: f8 94 cli
696: de bf out 0x3e, r29 ; 62
698: 0f be out 0x3f, r0 ; 63
69a: cd bf out 0x3d, r28 ; 61
69c: 89 83 std Y+1, r24 ; 0x01
69e: 6a 83 std Y+2, r22 ; 0x02
6a0: 5c 83 std Y+4, r21 ; 0x04
6a2: 4b 83 std Y+3, r20 ; 0x03
locatexy_12864(x,y);
6a4: 0e 94 fc 02 call 0x5f8 <locatexy_12864>
while(*pstr)
{
writedata_12864(*pstr);
x+=1;
if(x==16)
{
x=0;
y++;
if(y==4){y=0;}
locatexy_12864(x,y);
}
pstr++;
6a8: eb 81 ldd r30, Y+3 ; 0x03
6aa: fc 81 ldd r31, Y+4 ; 0x04
6ac: 80 81 ld r24, Z
6ae: 88 23 and r24, r24
6b0: f1 f0 breq .+60 ; 0x6ee <dispstr_12864+0x66>
6b2: eb 81 ldd r30, Y+3 ; 0x03
6b4: fc 81 ldd r31, Y+4 ; 0x04
6b6: 80 81 ld r24, Z
6b8: 0e 94 c3 02 call 0x586 <writedata_12864>
6bc: f9 81 ldd r31, Y+1 ; 0x01
6be: ff 5f subi r31, 0xFF ; 255
6c0: f9 83 std Y+1, r31 ; 0x01
6c2: f0 31 cpi r31, 0x10 ; 16
6c4: 61 f4 brne .+24 ; 0x6de <dispstr_12864+0x56>
6c6: 19 82 std Y+1, r1 ; 0x01
6c8: 8a 81 ldd r24, Y+2 ; 0x02
6ca: 8f 5f subi r24, 0xFF ; 255
6cc: 8a 83 std Y+2, r24 ; 0x02
6ce: 84 30 cpi r24, 0x04 ; 4
6d0: 11 f4 brne .+4 ; 0x6d6 <dispstr_12864+0x4e>
6d2: 99 81 ldd r25, Y+1 ; 0x01
6d4: 9a 83 std Y+2, r25 ; 0x02
6d6: 6a 81 ldd r22, Y+2 ; 0x02
6d8: 89 81 ldd r24, Y+1 ; 0x01
6da: 0e 94 fc 02 call 0x5f8 <locatexy_12864>
6de: eb 81 ldd r30, Y+3 ; 0x03
6e0: fc 81 ldd r31, Y+4 ; 0x04
6e2: 31 96 adiw r30, 0x01 ; 1
6e4: fc 83 std Y+4, r31 ; 0x04
6e6: eb 83 std Y+3, r30 ; 0x03
6e8: 80 81 ld r24, Z
6ea: 88 23 and r24, r24
6ec: 11 f7 brne .-60 ; 0x6b2 <dispstr_12864+0x2a>
6ee: 24 96 adiw r28, 0x04 ; 4
6f0: 0f b6 in r0, 0x3f ; 63
6f2: f8 94 cli
6f4: de bf out 0x3e, r29 ; 62
6f6: 0f be out 0x3f, r0 ; 63
6f8: cd bf out 0x3d, r28 ; 61
6fa: df 91 pop r29
6fc: cf 91 pop r28
6fe: 08 95 ret
00000700 <drawpic_12864>:
}
}
/*=========================================*/
/* 函数:drawpic(uchar *pdraw); */
/* 功能描述:画图形 */
/* 参数接口:pdraw,是存放图形数据的表 */
/*=========================================*/
void drawpic_12864(uchar *pdraw,uchar i)
{
700: cf 93 push r28
702: df 93 push r29
704: cd b7 in r28, 0x3d ; 61
706: de b7 in r29, 0x3e ; 62
708: 2a 97 sbiw r28, 0x0a ; 10
70a: 0f b6 in r0, 0x3f ; 63
70c: f8 94 cli
70e: de bf out 0x3e, r29 ; 62
710: 0f be out 0x3f, r0 ; 63
712: cd bf out 0x3d, r28 ; 61
714: 9a 83 std Y+2, r25 ; 0x02
716: 89 83 std Y+1, r24 ; 0x01
718: 6b 83 std Y+3, r22 ; 0x03
uchar x,y;
long uint k=0;
71a: 1d 82 std Y+5, r1 ; 0x05
71c: 1e 82 std Y+6, r1 ; 0x06
71e: 1f 82 std Y+7, r1 ; 0x07
720: 18 86 std Y+8, r1 ; 0x08
uchar yaddr=0x80;
722: 80 e8 ldi r24, 0x80 ; 128
724: 89 87 std Y+9, r24 ; 0x09
writecomm_12864(0x30);//功能设置---8BIT控制界面,绘图显示OFF
726: 80 e3 ldi r24, 0x30 ; 48
728: 0e 94 a9 02 call 0x552 <writecomm_12864>
writecomm_12864(0x34);//功能设置---8BIT控制界面,扩充指令集
72c: 84 e3 ldi r24, 0x34 ; 52
72e: 0e 94 a9 02 call 0x552 <writecomm_12864>
732: 9f e1 ldi r25, 0x1F ; 31
734: 9c 83 std Y+4, r25 ; 0x04
for(y=0;y<32;y++)
{
writecomm_12864(yaddr++);//设置绘图区的Y地址坐标
736: 89 85 ldd r24, Y+9 ; 0x09
738: a8 2f mov r26, r24
73a: af 5f subi r26, 0xFF ; 255
73c: a9 87 std Y+9, r26 ; 0x09
73e: 0e 94 a9 02 call 0x552 <writecomm_12864>
writecomm_12864(0x80); //设置绘图区的X地址坐标
742: 80 e8 ldi r24, 0x80 ; 128
744: 0e 94 a9 02 call 0x552 <writecomm_12864>
for(x=0;x<i;x++)
748: 1a 86 std Y+10, r1 ; 0x0a
74a: ba 85 ldd r27, Y+10 ; 0x0a
74c: eb 81 ldd r30, Y+3 ; 0x03
74e: be 17 cp r27, r30
750: 70 f5 brcc .+92 ; 0x7ae <drawpic_12864+0xae>
{
writedata_12864(pdraw[k++]);
752: 2d 81 ldd r18, Y+5 ; 0x05
754: 3e 81 ldd r19, Y+6 ; 0x06
756: 89 81 ldd r24, Y+1 ; 0x01
758: 9a 81 ldd r25, Y+2 ; 0x02
75a: 28 0f add r18, r24
75c: 39 1f adc r19, r25
75e: 8d 81 ldd r24, Y+5 ; 0x05
760: 9e 81 ldd r25, Y+6 ; 0x06
762: af 81 ldd r26, Y+7 ; 0x07
764: b8 85 ldd r27, Y+8 ; 0x08
766: 01 96 adiw r24, 0x01 ; 1
768: a1 1d adc r26, r1
76a: b1 1d adc r27, r1
76c: 8d 83 std Y+5, r24 ; 0x05
76e: 9e 83 std Y+6, r25 ; 0x06
770: af 83 std Y+7, r26 ; 0x07
772: b8 87 std Y+8, r27 ; 0x08
774: d9 01 movw r26, r18
776: 8c 91 ld r24, X
778: 0e 94 c3 02 call 0x586 <writedata_12864>
writedata_12864(pdraw[k++]);
77c: 2d 81 ldd r18, Y+5 ; 0x05
77e: 3e 81 ldd r19, Y+6 ; 0x06
780: e9 81 ldd r30, Y+1 ; 0x01
782: fa 81 ldd r31, Y+2 ; 0x02
784: 2e 0f add r18, r30
786: 3f 1f adc r19, r31
788: 8d 81 ldd r24, Y+5 ; 0x05
78a: 9e 81 ldd r25, Y+6 ; 0x06
78c: af 81 ldd r26, Y+7 ; 0x07
78e: b8 85 ldd r27, Y+8 ; 0x08
790: 01 96 adiw r24, 0x01 ; 1
792: a1 1d adc r26, r1
794: b1 1d adc r27, r1
796: 8d 83 std Y+5, r24 ; 0x05
798: 9e 83 std Y+6, r25 ; 0x06
79a: af 83 std Y+7, r26 ; 0x07
79c: b8 87 std Y+8, r27 ; 0x08
79e: d9 01 movw r26, r18
7a0: 8c 91 ld r24, X
7a2: 0e 94 c3 02 call 0x586 <writedata_12864>
7a6: ba 85 ldd r27, Y+10 ; 0x0a
7a8: bf 5f subi r27, 0xFF ; 255
7aa: ba 87 std Y+10, r27 ; 0x0a
7ac: cf cf rjmp .-98 ; 0x74c <drawpic_12864+0x4c>
7ae: fc 81 ldd r31, Y+4 ; 0x04
7b0: f1 50 subi r31, 0x01 ; 1
7b2: fc 83 std Y+4, r31 ; 0x04
7b4: f7 ff sbrs r31, 7
7b6: bf cf rjmp .-130 ; 0x736 <drawpic_12864+0x36>
}
}
yaddr=0x80;
7b8: 80 e8 ldi r24, 0x80 ; 128
7ba: 89 87 std Y+9, r24 ; 0x09
7bc: 9f e1 ldi r25, 0x1F ; 31
7be: 9c 83 std Y+4, r25 ; 0x04
for(y=0;y<32;y++)
{
writecomm_12864(yaddr++);//设置绘图区的Y地址坐标
7c0: 89 85 ldd r24, Y+9 ; 0x09
7c2: a8 2f mov r26, r24
7c4: af 5f subi r26, 0xFF ; 255
7c6: a9 87 std Y+9, r26 ; 0x09
7c8: 0e 94 a9 02 call 0x552 <writecomm_12864>
writecomm_12864(0x88); //设置绘图区的X地址坐标
7cc: 88 e8 ldi r24, 0x88 ; 136
7ce: 0e 94 a9 02 call 0x552 <writecomm_12864>
for(x=0;x<i;x++)
7d2: 1a 86 std Y+10, r1 ; 0x0a
7d4: ba 85 ldd r27, Y+10 ; 0x0a
7d6: eb 81 ldd r30, Y+3 ; 0x03
7d8: be 17 cp r27, r30
7da: 70 f5 brcc .+92 ; 0x838 <drawpic_12864+0x138>
{
writedata_12864(pdraw[k++]);
7dc: 2d 81 ldd r18, Y+5 ; 0x05
7de: 3e 81 ldd r19, Y+6 ; 0x06
7e0: 89 81 ldd r24, Y+1 ; 0x01
7e2: 9a 81 ldd r25, Y+2 ; 0x02
7e4: 28 0f add r18, r24
7e6: 39 1f adc r19, r25
7e8: 8d 81 ldd r24, Y+5 ; 0x05
7ea: 9e 81 ldd r25, Y+6 ; 0x06
7ec: af 81 ldd r26, Y+7 ; 0x07
7ee: b8 85 ldd r27, Y+8 ; 0x08
7f0: 01 96 adiw r24, 0x01 ; 1
7f2: a1 1d adc r26, r1
7f4: b1 1d adc r27, r1
7f6: 8d 83 std Y+5, r24 ; 0x05
7f8: 9e 83 std Y+6, r25 ; 0x06
7fa: af 83 std Y+7, r26 ; 0x07
7fc: b8 87 std Y+8, r27 ; 0x08
7fe: d9 01 movw r26, r18
800: 8c 91 ld r24, X
802: 0e 94 c3 02 call 0x586 <writedata_12864>
writedata_12864(pdraw[k++]);
806: 2d 81 ldd r18, Y+5 ; 0x05
808: 3e 81 ldd r19, Y+6 ; 0x06
80a: e9 81 ldd r30, Y+1 ; 0x01
80c: fa 81 ldd r31, Y+2 ; 0x02
80e: 2e 0f add r18, r30
810: 3f 1f adc r19, r31
812: 8d 81 ldd r24, Y+5 ; 0x05
814: 9e 81 ldd r25, Y+6 ; 0x06
816: af 81 ldd r26, Y+7 ; 0x07
818: b8 85 ldd r27, Y+8 ; 0x08
81a: 01 96 adiw r24, 0x01 ; 1
81c: a1 1d adc r26, r1
81e: b1 1d adc r27, r1
820: 8d 83 std Y+5, r24 ; 0x05
822: 9e 83 std Y+6, r25 ; 0x06
824: af 83 std Y+7, r
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -