📄 testh.s
字号:
; void logoshow(void);//显示公司logo
; void main()
; {
;
; MCUCR=0X80;//选择外部存储器
; DDRA=0XFF;
; PORTA=0X14;//将a口的第3、5口输出
; DDRC=0X00;
; PORTC=0XFF;//前面的几步都是在选择和初始化液晶
; clrall(0x07);//用白色清屏
; logoshow();
; delay(80);
; boat[1].log=10;
; boat[1].lang=-5;
; boat[1].d=0;
; boat[1].turn=15;//初始化船的数据,测试用
; clrall(0x02);//用绿色清屏
; cycle(120,120,119,1);//在(120,120)为圆心120为半径画蓝色的圆
; showsmallmun(25,110,a,7);//显示字符串a
; juxing(30,0,39,239,1);//用蓝色画信息显示背景区
; juxing(30,56,39,72,7);//用白色显示信息空白
; juxing(30,88,39,104,7);
; juxing(30,120,39,136,7);
; juxing(30,152,39,168,7);
; juxing(30,184,39,200,7);
; juxing(30,216,39,232,7);
; showallhz();
; for(tempall=0;tempall<220;tempall+=40)
; {
; line(tempall,0,tempall,239,7);//画维度线
; }
; displayboat(1);//显示编号为1的船
;
;
;
; }
;
; void logoshow()
; {
; unsigned char i,j;
; const unsigned char *hz;
; hz=logo;
; for(j=0;j<32;j++)//一共有32行的点阵
; {
.dbline 52
; for(i=0;i<4;i++)//每行有4个点位
; {
ldi R24,255
out 0x1a,R24
.dbline 53
; hz_write(i+18,j+50,hz,1);//写入该点位的八个点
sts 4378,R16
.dbline 54
; hz++;//hz存放黑白字模的数组
sts 4377,R18
.dbline 55
; }
ldd R0,y+0
sts 4376,R0
.dbline 56
; }
ldd R0,y+2
sts 4376,R0
.dbline 57
; showchars(16,95,ais,5);
ldd R0,y+4
sts 4376,R0
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym l buffer3 4 c
.dbsym l buffer2 2 c
.dbsym l buffer1 0 c
.dbsym r y 18 c
.dbsym r x 16 c
.dbend
.dbfunc e read _read fV
; b3 -> y+4
; b2 -> y+2
; b1 -> y+0
; y -> R18
; x -> R16
.even
_read::
.dbline -1
.dbline 61
; hanzi(19,95,xi,5,2);
; hanzi(21,95,tong,5,2);
; hanzi(14,120,tai,1,2);
; hanzi(17,120,ke,1,2);
.dbline 62
; hanzi(20,120,tong1,1,2);
clr R2
out 0x1a,R2
.dbline 63
; hanzi(23,120,xin,1,2);
sts 4378,R16
.dbline 64
; showchars(12,145,qz,0);
sts 4377,R18
.dbline 65
; showchars(1,170,kaike,0);
lds R2,4376
ldd R30,y+0
ldd R31,y+1
std z+0,R2
.dbline 66
; }
lds R2,4376
ldd R30,y+2
ldd R31,y+3
std z+0,R2
.dbline 67
; }
lds R2,4376
ldd R30,y+4
ldd R31,y+5
std z+0,R2
.dbline -2
L2:
.dbline 0 ; func end
ret
.dbsym l b3 4 pc
.dbsym l b2 2 pc
.dbsym l b1 0 pc
.dbsym r y 18 c
.dbsym r x 16 c
.dbend
.dbfunc e point _point fV
; buffer3 -> y+8
; buffer2 -> y+7
; temp -> R12,R13
; buffer1 -> y+6
; color -> R10
; y -> R22
; x -> R20,R21
.even
_point::
xcall push_gset4
mov R22,R18
movw R20,R16
sbiw R28,9
ldd R10,y+17
.dbline -1
.dbline 72
; }
; }
; }
; }
; }
.dbline 74
; }
; }
movw R24,R20
andi R24,7
andi R25,0
movw R12,R24
.dbline 75
; }
movw R2,R20
lsr R3
ror R2
lsr R3
ror R2
lsr R3
ror R2
movw R20,R2
.dbline 76
; }
movw R24,R28
adiw R24,8
std y+5,R25
std y+4,R24
movw R24,R28
adiw R24,7
std y+3,R25
std y+2,R24
movw R24,R28
adiw R24,6
std y+1,R25
std y+0,R24
mov R18,R22
mov R16,R2
xcall _read
.dbline 78
; }
; }
tst R12
brne L4
tst R13
brne L4
X0:
.dbline 79
; }
.dbline 80
; }
ldd R24,y+6
andi R24,31
std y+6,R24
.dbline 81
; }
mov R2,R10
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
mov R3,R24
or R3,R2
std y+6,R3
.dbline 82
; }
xjmp L5
L4:
.dbline 83
; }
movw R24,R12
cpi R24,1
ldi R30,0
cpc R25,R30
brne L6
.dbline 84
; }
.dbline 85
; }
ldd R24,y+6
andi R24,227
std y+6,R24
.dbline 86
; }
mov R2,R10
lsl R2
lsl R2
mov R3,R24
or R3,R2
std y+6,R3
.dbline 87
; }
xjmp L7
L6:
.dbline 88
; }
movw R24,R12
cpi R24,2
ldi R30,0
cpc R25,R30
brne L8
.dbline 89
; }
.dbline 90
; }
ldd R24,y+6
andi R24,252
std y+6,R24
.dbline 91
; }
mov R2,R10
lsr R2
mov R3,R24
or R3,R2
std y+6,R3
.dbline 92
; }
ldd R24,y+7
andi R24,127
std y+7,R24
.dbline 93
; }
mov R2,R10
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
mov R3,R24
or R3,R2
std y+7,R3
.dbline 94
; }
xjmp L9
L8:
.dbline 95
; }
movw R24,R12
cpi R24,3
ldi R30,0
cpc R25,R30
brne L10
.dbline 96
; }
.dbline 97
; }
ldd R24,y+7
andi R24,143
std y+7,R24
.dbline 98
; }
mov R24,R10
andi R24,#0x0F
swap R24
ldd R2,y+7
or R2,R24
std y+7,R2
.dbline 99
; }
xjmp L11
L10:
.dbline 100
; }
movw R24,R12
cpi R24,4
ldi R30,0
cpc R25,R30
brne L12
.dbline 101
; }
.dbline 102
; }
ldd R24,y+7
andi R24,241
std y+7,R24
.dbline 103
; }
mov R2,R10
lsl R2
mov R3,R24
or R3,R2
std y+7,R3
.dbline 104
; }
xjmp L13
L12:
.dbline 105
; }
movw R24,R12
cpi R24,5
ldi R30,0
cpc R25,R30
brne L14
.dbline 106
; }
.dbline 107
; }
ldd R24,y+7
andi R24,254
std y+7,R24
.dbline 108
; }
mov R2,R10
lsr R2
lsr R2
mov R3,R24
or R3,R2
std y+7,R3
.dbline 109
; }
ldd R24,y+8
andi R24,63
std y+8,R24
.dbline 110
; }
mov R2,R10
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
mov R3,R24
or R3,R2
std y+8,R3
.dbline 111
; }
xjmp L15
L14:
.dbline 112
; }
movw R24,R12
cpi R24,6
ldi R30,0
cpc R25,R30
brne L16
.dbline 113
; }
.dbline 114
; }
ldd R24,y+8
andi R24,199
std y+8,R24
.dbline 115
; }
mov R2,R10
lsl R2
lsl R2
lsl R2
mov R3,R24
or R3,R2
std y+8,R3
.dbline 116
; }
xjmp L17
L16:
.dbline 117
; }
movw R24,R12
cpi R24,7
ldi R30,0
cpc R25,R30
brne L18
.dbline 118
; }
.dbline 119
; }
ldd R24,y+8
andi R24,248
std y+8,R24
.dbline 120
; }
mov R2,R24
or R2,R10
std y+8,R2
.dbline 121
; }
L18:
L17:
L15:
L13:
L11:
L9:
L7:
L5:
.dbline 122
; }
ldd R2,y+8
std y+4,R2
ldd R2,y+7
std y+2,R2
ldd R2,y+6
std y+0,R2
mov R18,R22
mov R16,R20
xcall _write
.dbline -2
L3:
adiw R28,9
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym l buffer3 8 c
.dbsym l buffer2 7 c
.dbsym r temp 12 i
.dbsym l buffer1 6 c
.dbsym r color 10 c
.dbsym r y 22 c
.dbsym r x 20 i
.dbend
.dbfunc e clrall _clrall fV
; buffer3 -> R20
; buffer1 -> R22
; buffer2 -> R10
; i -> R12
; j -> R14
; color -> R12
.even
_clrall::
xcall push_gset5
mov R12,R16
sbiw R28,5
.dbline -1
.dbline 131
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 132
; }
clr R22
.dbline 132
clr R10
.dbline 132
clr R20
.dbline 134
; }
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
or R22,R2
.dbline 135
; }
mov R2,R12
lsl R2
lsl R2
or R22,R2
.dbline 136
; }
mov R2,R12
lsr R2
or R22,R2
.dbline 137
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
or R10,R2
.dbline 138
; }
mov R24,R12
andi R24,#0x0F
swap R24
or R10,R24
.dbline 139
; }
mov R2,R12
lsl R2
or R10,R2
.dbline 140
; }
mov R2,R12
lsr R2
lsr R2
or R10,R2
.dbline 141
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
or R20,R2
.dbline 142
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
or R20,R2
.dbline 143
; }
or R20,R12
.dbline 144
; }
clr R12
xjmp L24
L21:
.dbline 145
; }
.dbline 146
; }
clr R14
xjmp L28
L25:
.dbline 147
.dbline 148
std y+4,R20
std y+2,R10
std y+0,R22
mov R18,R14
mov R16,R12
xcall _write
.dbline 149
L26:
.dbline 146
inc R14
L28:
.dbline 146
mov R24,R14
cpi R24,240
brlo L25
.dbline 150
L22:
.dbline 144
inc R12
L24:
.dbline 144
mov R24,R12
cpi R24,40
brlo L21
.dbline -2
L20:
adiw R28,5
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r buffer3 20 c
.dbsym r buffer1 22 c
.dbsym r buffer2 10 c
.dbsym r i 12 c
.dbsym r j 14 c
.dbsym r color 12 c
.dbend
.dbfunc e juxing _juxing fV
; buffer3 -> R20
; buffer1 -> R22
; buffer2 -> R10
; i -> R12
; j -> R14
; color -> R12
; y2 -> y+19
; x2 -> y+17
; y1 -> y+15
; x1 -> R14
.even
_juxing::
st -y,r19
st -y,r18
xcall push_gset5
mov R14,R16
sbiw R28,5
ldd R12,y+21
.dbline -1
.dbline 155
; }
; }
; }
; }
; }
; }
; }
; }
; }
.dbline 156
; }
clr R22
.dbline 156
clr R10
.dbline 156
clr R20
.dbline 158
; }
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
or R22,R2
.dbline 159
; }
mov R2,R12
lsl R2
lsl R2
or R22,R2
.dbline 160
; }
mov R2,R12
lsr R2
or R22,R2
.dbline 161
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
or R10,R2
.dbline 162
; }
mov R24,R12
andi R24,#0x0F
swap R24
or R10,R24
.dbline 163
; }
mov R2,R12
lsl R2
or R10,R2
.dbline 164
; }
mov R2,R12
lsr R2
lsr R2
or R10,R2
.dbline 165
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
lsl R2
or R20,R2
.dbline 166
; }
mov R2,R12
lsl R2
lsl R2
lsl R2
or R20,R2
.dbline 167
; }
or R20,R12
.dbline 168
; }
mov R12,R14
xjmp L33
L30:
.dbline 169
; }
.dbline 170
; }
ldd R14,y+15
xjmp L37
L34:
.dbline 171
.dbline 172
std y+4,R20
std y+2,R10
std y+0,R22
mov R18,R14
mov R16,R12
xcall _write
.dbline 173
L35:
.dbline 170
inc R14
L37:
.dbline 170
ldd R0,y+19
cp R0,R14
brsh L34
.dbline 174
L31:
.dbline 168
inc R12
L33:
.dbline 168
ldd R0,y+17
cp R0,R12
brsh L30
.dbline -2
L29:
adiw R28,5
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r buffer3 20 c
.dbsym r buffer1 22 c
.dbsym r buffer2 10 c
.dbsym r i 12 c
.dbsym r j 14 c
.dbsym r color 12 c
.dbsym l y2 19 c
.dbsym l x2 17 c
.dbsym l y1 15 c
.dbsym r x1 14 c
.dbend
.dbfunc e line _line fV
; dy -> R20,R21
; dx -> R22,R23
; x -> R10
; y -> R12
; color -> R14
; y2 -> y+17
; x2 -> y+15
; y1 -> y+13
; x1 -> y+11
.even
_line::
xcall push_arg4
xcall push_gset5
sbiw R28,1
ldd R14,y+19
.dbline -1
.dbline 179
;
;
;
;
;
;
;
;
;
.dbline 182
;
;
;
ldd R0,y+15
ldd R16,y+11
cp R0,R16
brsh L39
.dbline 183
;
.dbline 184
;
mov R10,R0
.dbline 185
;
ldd R12,y+17
.dbline 186
;
mov R0,R16
std y+15,R0
.dbline 187
;
ldd R0,y+13
std y+17,R0
.dbline 188
;
std y+11,R10
.dbline 189
;
std y+13,R12
.dbline 190
;
L39:
.dbline 191
;
std y+0,R14
ldd R18,y+13
ldd R16,y+11
clr R17
xcall _point
.dbline 192
;
ldd R10,y+11
.dbline 193
;
ldd R12,y+13
.dbline 194
;
mov R2,R10
clr R3
ldd R22,y+15
clr R23
sub R22,R2
sbc R23,R3
.dbline 195
;
brne L41
X1:
.dbline 196
;
.dbline 197
;
ldd R0,y+13
ldd R16,y+17
cp R0,R16
brsh L52
.dbline 198
;
.dbline 199
;
xjmp L48
L45:
.dbline 200
std y+0,R14
mov R18,R12
mov R16,R10
clr R17
xcall _point
L46:
.dbline 199
inc R12
L48:
.dbline 199
ldd R0,y+17
cp R0,R12
brsh L45
.dbline 201
;
;
xjmp L42
X2:
.dbline 203
;
;
.dbline 204
;
L49:
.dbline 205
std y+0,R14
mov R18,R12
mov R16,R10
clr R17
xcall _point
L50:
.dbline 204
dec R12
L52:
.dbline 204
ldd R0,y+17
cp R12,R0
brsh L49
.dbline 206
;
;
.dbline 207
;
xjmp L42
L41:
.dbline 208
;
ldd R0,y+13
ldd R16,y+17
cp R0,R16
brne L53
.dbline 209
;
.dbline 210
;
ldd R0,y+11
cp R0,R10
brsh L64
.dbline 211
;
.dbline 212
;
xjmp L60
L57:
.dbline 213
std y+0,R14
mov R18,R12
mov R16,R10
clr R17
xcall _point
L58:
.dbline 212
inc R10
L60:
.dbline 212
ldd R0,y+15
cp R0,R10
brsh L57
.dbline 214
;
;
xjmp L54
X3:
.dbline 216
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -