⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 本文件是一套用示波器显示时钟走动和头像动画的系统
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	.dw 145
	.dw 139
	.dw 134
	.dw 128
	.dw 122
	.dw 116
	.dw 110
	.dw 104
	.dw 98
	.dw 92
	.dw 85
	.dw 79
	.dw 73
	.dw 66
	.dw 60
	.dw 53
	.dw 47
	.dw 40
	.dw 33
	.dw 27
	.dw 20
	.dw 13
	.dw 7
	.dw 0
	.dw -6
	.dw -12
	.dw -19
	.dw -26
	.dw -32
	.dw -39
	.dw -46
	.dw -52
	.dw -59
	.dw -65
	.dw -72
	.dw -78
	.dw -84
	.dw -91
	.dw -97
	.dw -103
	.dw -109
	.dw -115
	.dw -121
	.dw -127
	.dw -133
	.dw -138
	.dw -144
	.dw -149
	.dw -155
	.dw -160
	.dw -165
	.dw -170
	.dw -175
	.dw -180
	.dw -185
	.dw -189
	.dw -194
	.dw -198
	.dw -202
	.dw -206
	.dw -210
	.dw -214
	.dw -217
	.dw -221
	.dw -224
	.dw -227
	.dw -230
	.dw -233
	.dw -236
	.dw -238
	.dw -240
	.dw -242
	.dw -244
	.dw -246
	.dw -248
	.dw -249
	.dw -251
	.dw -252
	.dw -253
	.dw -254
	.dw -254
	.dw -255
	.dw -255
	.dw -255
	.dw -255
	.dw -255
	.dw -254
	.dw -254
	.dw -253
	.dw -252
	.dw -251
	.dw -249
	.dw -248
	.dw -246
	.dw -244
	.dw -242
	.dw -240
	.dw -238
	.dw -236
	.dw -233
	.dw -230
	.dw -227
	.dw -224
	.dw -221
	.dw -217
	.dw -214
	.dw -210
	.dw -206
	.dw -202
	.dw -198
	.dw -194
	.dw -189
	.dw -185
	.dw -180
	.dw -175
	.dw -170
	.dw -165
	.dw -160
	.dw -155
	.dw -149
	.dw -144
	.dw -138
	.dw -133
	.dw -127
	.dw -121
	.dw -115
	.dw -109
	.dw -103
	.dw -97
	.dw -91
	.dw -84
	.dw -78
	.dw -72
	.dw -65
	.dw -59
	.dw -52
	.dw -46
	.dw -39
	.dw -32
	.dw -26
	.dw -19
	.dw -12
	.dw -6
.public _Timey2
_Timey2:
	.dw 255
	.dw 255
	.dw 255
	.dw 255
	.dw 255
	.dw 254
	.dw 253
	.dw 252
	.dw 250
	.dw 249
	.dw 247
	.dw 245
	.dw 243
	.dw 241
	.dw 239
	.dw 237
	.dw 234
	.dw 231
	.dw 228
	.dw 225
	.dw 222
	.dw 218
	.dw 215
	.dw 211
	.dw 207
	.dw 203
	.dw 199
	.dw 195
	.dw 190
	.dw 186
	.dw 181
	.dw 176
	.dw 171
	.dw 166
	.dw 161
	.dw 156
	.dw 150
	.dw 145
	.dw 139
	.dw 134
	.dw 128
	.dw 122
	.dw 116
	.dw 110
	.dw 104
	.dw 98
	.dw 92
	.dw 85
	.dw 79
	.dw 73
	.dw 66
	.dw 60
	.dw 53
	.dw 47
	.dw 40
	.dw 33
	.dw 27
	.dw 20
	.dw 13
	.dw 7
	.dw 0
	.dw -6
	.dw -12
	.dw -19
	.dw -26
	.dw -32
	.dw -39
	.dw -46
	.dw -52
	.dw -59
	.dw -65
	.dw -72
	.dw -78
	.dw -84
	.dw -91
	.dw -97
	.dw -103
	.dw -109
	.dw -115
	.dw -121
	.dw -127
	.dw -133
	.dw -138
	.dw -144
	.dw -149
	.dw -155
	.dw -160
	.dw -165
	.dw -170
	.dw -175
	.dw -180
	.dw -185
	.dw -189
	.dw -194
	.dw -198
	.dw -202
	.dw -206
	.dw -210
	.dw -214
	.dw -217
	.dw -221
	.dw -224
	.dw -227
	.dw -230
	.dw -233
	.dw -236
	.dw -238
	.dw -240
	.dw -242
	.dw -244
	.dw -246
	.dw -248
	.dw -249
	.dw -251
	.dw -252
	.dw -253
	.dw -254
	.dw -254
	.dw -255
	.dw -255
	.dw -255
	.dw -255
	.dw -255
	.dw -254
	.dw -254
	.dw -253
	.dw -252
	.dw -251
	.dw -249
	.dw -248
	.dw -246
	.dw -244
	.dw -242
	.dw -240
	.dw -238
	.dw -236
	.dw -233
	.dw -230
	.dw -227
	.dw -224
	.dw -221
	.dw -217
	.dw -214
	.dw -210
	.dw -206
	.dw -202
	.dw -198
	.dw -194
	.dw -189
	.dw -185
	.dw -180
	.dw -175
	.dw -170
	.dw -165
	.dw -160
	.dw -155
	.dw -149
	.dw -144
	.dw -138
	.dw -133
	.dw -127
	.dw -121
	.dw -115
	.dw -109
	.dw -103
	.dw -97
	.dw -91
	.dw -84
	.dw -78
	.dw -72
	.dw -65
	.dw -59
	.dw -52
	.dw -46
	.dw -39
	.dw -32
	.dw -26
	.dw -19
	.dw -12
	.dw -6
	.dw 0
	.dw 7
	.dw 13
	.dw 20
	.dw 27
	.dw 33
	.dw 40
	.dw 47
	.dw 53
	.dw 60
	.dw 66
	.dw 73
	.dw 79
	.dw 85
	.dw 92
	.dw 98
	.dw 104
	.dw 110
	.dw 116
	.dw 122
	.dw 128
	.dw 134
	.dw 139
	.dw 145
	.dw 150
	.dw 156
	.dw 161
	.dw 166
	.dw 171
	.dw 176
	.dw 181
	.dw 186
	.dw 190
	.dw 195
	.dw 199
	.dw 203
	.dw 207
	.dw 211
	.dw 215
	.dw 218
	.dw 222
	.dw 225
	.dw 228
	.dw 231
	.dw 234
	.dw 237
	.dw 239
	.dw 241
	.dw 243
	.dw 245
	.dw 247
	.dw 249
	.dw 250
	.dw 252
	.dw 253
	.dw 254
	.dw 255
	.dw 255
	.dw 255
	.dw 255
// ISR ATTRIBUTE FUNCTION, LOCATE in .text SECTION
.text
.public _IRQ6
_IRQ6:	.proc
	// ISR ATTRIBUTE FUNCTION, PUSH r1,bp
	push r1,bp to [sp]

	// total=0, vars=0
	// frame_pointer_needed: 1
	bp=sp+1

	R1=[_key_mode]	// QImode move
	CMP R1,0	// QImode test
	JZ L33	// QImode NE
	PC=L3
L33:
	[_min_flash]=R1	// QImode move
	[_hour_flash]=R1	// QImode move
L3:
	CMP R1,1	// QImode compare
	JZ L34	// QImode NE
	PC=L4
L34:
	R2=0	// QImode move
	[_hour_flash]=R2	// QImode move
	R1=[_min_flash]	// QImode move
	R1=R1+1
	[_min_flash]=R1	// QImode move
	CMP R1,11	// QImode compare
	JA L35	// QImode LEU
	PC=L6
L35:
	[_min_flash]=R2	// QImode move
	pc=L6	// jump
L4:
	CMP R1,2	// QImode compare
	JZ L36	// QImode NE
	PC=L6
L36:
	R2=0	// QImode move
	[_min_flash]=R2	// QImode move
	R1=[_hour_flash]	// QImode move
	R1=R1+1
	[_hour_flash]=R1	// QImode move
	CMP R1,11	// QImode compare
	JA L37	// QImode LEU
	PC=L6
L37:
	[_hour_flash]=R2	// QImode move
L6:
	R2=[_p0]	// QImode move
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,0	// QImode test
	JZ L38	// QImode NE
	PC=L9
L38:
	[_key_plus]=R1	// QImode move
	[_key_num]=R1	// QImode move
	[_key_have]=R1	// QImode move
L9:
	R3=[R2]	// QImode move
	CMP R3,1	// QImode compare
	JZ L39	// QImode NE
	PC=L10
L39:
	R2=[_key_have]	// QImode move
	CMP R2,0	// QImode test
	JZ L40	// QImode NE
	PC=L10
L40:
	R1=[_key_num]	// QImode move
	CMP R1,2	// QImode compare
	JNA L41	// QImode GTU
	PC=L12
L41:
	R1=R1+1
	[_key_num]=R1	// QImode move
	pc=L10	// jump
L12:
	[_key_num]=R2	// QImode move
	[_key_have]=R3	// QImode move
	R1=[_key_mode]	// QImode move
	R1=R1+1
	[_key_mode]=R1	// QImode move
	CMP R1,3	// QImode compare
	JZ L42	// QImode NE
	PC=L10
L42:
	[_key_mode]=R2	// QImode move
L10:
	R1=[_p0]	// QImode move
	R1=[R1]	// QImode move
	CMP R1,2	// QImode compare
	JZ L43	// QImode NE
	PC=L15
L43:
	R1=[_key_num]	// QImode move
	CMP R1,2	// QImode compare
	JNA L44	// QImode GTU
	PC=L16
L44:
	R1=R1+1
	[_key_num]=R1	// QImode move
	pc=L15	// jump
L16:
	R3=0	// QImode move
	[_key_num]=R3	// QImode move
	R1=[_key_mode]	// QImode move
	CMP R1,1	// QImode compare
	JZ L45	// QImode NE
	PC=L18
L45:
	[_key_have]=R1	// QImode move
	R2=[_min]	// QImode move
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	CMP R1,237	// QImode compare
	JNA L46	// QImode GTU
	PC=L19
L46:
	R1=R1+2
	[R2]=R1	// QImode move
	pc=L18	// jump
L19:
	[R2]=R3	// QImode move
L18:
	R1=[_key_mode]	// QImode move
	CMP R1,2	// QImode compare
	JZ L47	// QImode NE
	PC=L15
L47:
	R1=1	// QImode move
	[_key_have]=R1	// QImode move
	R2=[_hour]	// QImode move
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,237	// QImode compare
	JNA L48	// QImode GTU
	PC=L22
L48:
	R1=R1+2
	[R2]=R1	// QImode move
	pc=L15	// jump
L22:
	R4=0	// QImode move
	[R2]=R4	// QImode move
L15:
	R1=[_p0]	// QImode move
	R1=[R1]	// QImode move
	CMP R1,4	// QImode compare
	JZ L49	// QImode NE
	PC=L24
L49:
	R1=[_key_num]	// QImode move
	CMP R1,2	// QImode compare
	JNA L50	// QImode GTU
	PC=L25
L50:
	R1=R1+1
	[_key_num]=R1	// QImode move
	pc=L24	// jump
L25:
	R1=0	// QImode move
	[_key_num]=R1	// QImode move
	R1=[_key_mode]	// QImode move
	CMP R1,1	// QImode compare
	JZ L51	// QImode NE
	PC=L27
L51:
	[_key_have]=R1	// QImode move
	R2=[_min]	// QImode move
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,1	// QImode compare
	JA L52	// QImode LEU
	PC=L28
L52:
	R1=R1+(-2)
	[R2]=R1	// QImode move
	pc=L27	// jump
L28:
	R4=238	// QImode move
	[R2]=R4	// QImode move
L27:
	R1=[_key_mode]	// QImode move
	CMP R1,2	// QImode compare
	JZ L53	// QImode NE
	PC=L24
L53:
	R1=1	// QImode move
	[_key_have]=R1	// QImode move
	R2=[_hour]	// QImode move
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,1	// QImode compare
	JA L54	// QImode LEU
	PC=L31
L54:
	R1=R1+(-2)
	[R2]=R1	// QImode move
	pc=L24	// jump
L31:
	R4=238	// QImode move
	[R2]=R4	// QImode move
L24:
	R1=[_intc]	// QImode move
	R2=2	// QImode move
	[R1]=R2	// QImode move

	// ISR ATTRIBUTE FUNCTION, POP r1,bp
	pop r1,bp from [sp]
	reti
	.endp	// end of IRQ6

.code
.public _Point
_Point:	.proc
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=0	// QImode move
	[BP]=R1	// QImode move
L66:
	R2=[_da0]	// QImode move
	R1=[_sec]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timex2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=[_sec]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timey2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R1=[BP]	// QImode move
	R1=R1+2
	[BP]=R1	// QImode move
	CMP R1,109	// QImode compare
	JA L95	// QImode LEU
	PC=L66
L95:
	R3=107	// QImode move
	[BP]=R3	// QImode move
L71:
	R2=[_da0]	// QImode move
	R1=[_sec]	// QImode move
	R1=[R1]	// QImode move
	R4=_Timex2	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=[_sec]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timey2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R1=[BP]	// QImode move
	R1=R1+(-2)
	[BP]=R1	// QImode move
	CMP R1,2	// QImode compare
	JNA L96	// QImode GTU
	PC=L71
L96:
	R1=[_min_flash]	// QImode move
	CMP R1,9	// QImode compare
	JNA L97	// QImode GTU
	PC=L73
L97:
	R3=0	// QImode move
	[BP]=R3	// QImode move
L77:
	R2=[_da0]	// QImode move
	R1=[_min]	// QImode move
	R1=[R1]	// QImode move
	R4=_Timex2	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=[_min]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timey2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R1=[BP]	// QImode move
	R1=R1+4
	[BP]=R1	// QImode move
	CMP R1,85	// QImode compare
	JA L98	// QImode LEU
	PC=L77
L98:
	R3=86	// QImode move
	[BP]=R3	// QImode move
L82:
	R2=[_da0]	// QImode move
	R1=[_min]	// QImode move
	R1=[R1]	// QImode move
	R4=_Timex2	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=[_min]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timey2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R1=[BP]	// QImode move
	R1=R1+(-4)
	[BP]=R1	// QImode move
	CMP R1,4	// QImode compare
	JNA L99	// QImode GTU
	PC=L82
L99:
L73:
	R1=[_hour_flash]	// QImode move
	CMP R1,9	// QImode compare
	JNA L100	// QImode GTU
	PC=L84
L100:
	R3=0	// QImode move
	[BP]=R3	// QImode move
L88:
	R2=[_da0]	// QImode move
	R1=[_hour]	// QImode move
	R1=[R1]	// QImode move
	R4=_Timex2	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=[_hour]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timey2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R1=[BP]	// QImode move
	R1=R1+4
	[BP]=R1	// QImode move
	CMP R1,65	// QImode compare
	JA L101	// QImode LEU
	PC=L88
L101:
	R3=66	// QImode move
	[BP]=R3	// QImode move
L93:
	R2=[_da0]	// QImode move
	R1=[_hour]	// QImode move
	R1=[R1]	// QImode move
	R4=_Timex2	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=[_hour]	// QImode move
	R1=[R1]	// QImode move
	R3=_Timey2	// QImode move
	R1+=R3	// addqi3_r0r
	R1=[R1]	// QImode move
	R4=[BP]	// QImode move
	mr=R1*R4	// r3=R1*R4 16bit=16bit*16bit
	R1=R3+(-32768)
	[R2]=R1	// QImode move
	R1=[BP]	// QImode move
	R1=R1+(-4)
	[BP]=R1	// QImode move
	CMP R1,4	// QImode compare
	JNA L102	// QImode GTU
	PC=L93
L102:
L84:

	sp+=1
	pop bp from [sp]
	retf
	.endp	// end of Point

.ram
.public _key_num
_key_num:
	.dw 0
.ram
.public _key_mode
_key_mode:
	.dw 0
.ram
.public _key_have
_key_have:
	.dw 0
.ram
.public _key_plus
_key_plus:
	.dw 0
.ram
.public _fast
_fast:
	.dw 0
.ram
.public _min_flash
_min_flash:
	.dw 0
.ram
.public _hour_flash
_hour_flash:
	.dw 0
.ram
.public _bufx
_bufx:
	.dw 0
.ram
.public _bufy
_bufy:
	.dw 0
.code
.public _Init_MCU
_Init_MCU:	.proc
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R1=[_p0d]	// QImode move
	R2=0	// QImode move
	[R1]=R2	// QImode move
	R1=[_p0d]	// QImode move
	[R1]=R2	// QImode move
	R1=[_p0]	// QImode move
	[R1]=R2	// QImode move
// GCC inline ASM start
	INT OFF
// GCC inline ASM end
	R1=[_tbu]	// QImode move
	R2=98	// QImode move
	[R1]=R2	// QImode move
	R1=[_intu]	// QImode move
	R2=10	// QImode move
	[R1]=R2	// QImode move
// GCC inline ASM start
	INT IRQ
// GCC inline ASM end

	pop bp from [sp]
	retf
	.endp	// end of Init_MCU

.code
.public _Circle
_Circle:	.proc
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R3=0	// QImode move
L60:
	R2=[_da0]	// QImode move
	R1=R3	// QImode move
	R4=_Timex	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=R3	// QImode move
	R4=_Timey	// QImode move
	R1+=R4	// addqi3_r0r
	R1=[R1]	// QImode move
	[R2]=R1	// QImode move
	R3=R3+1
	CMP R3,403	// QImode compare
	JA L115	// QImode LEU
	PC=L60
L115:

	pop bp from [sp]
	retf
	.endp	// end of Circle

.code
.public _main
_main:	.proc
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R2=[_sec]	// QImode move
	R1=0	// QImode move
	[R2]=R1	// QImode move
	R2=[_min]	// QImode move
	[R2]=R1	// QImode move
	R2=[_hour]	// QImode move
	[R2]=R1	// QImode move
	[_key_num]=R1	// QImode move
	[_fast]=R1	// QImode move
	[_key_mode]=R1	// QImode move
	[_key_have]=R1	// QImode move
	R2=[_p0d]	// QImode move
	[R2]=R1	// QImode move
	R2=[_p0d]	// QImode move
	[R2]=R1	// QImode move
	R2=[_p0]	// QImode move
	[R2]=R1	// QImode move
// GCC inline ASM start
	INT OFF
// GCC inline ASM end
	R1=[_tbu]	// QImode move
	R2=98	// QImode move
	[R1]=R2	// QImode move
	R1=[_intu]	// QImode move
	R2=10	// QImode move
	[R1]=R2	// QImode move
// GCC inline ASM start
	INT IRQ
// GCC inline ASM end
L107:
	R1=[_wdogc]	// QImode move
	R2=1	// QImode move
	[R1]=R2	// QImode move
	R3=0	// QImode move
L110:
	R2=[_da0]	// QImode move
	R1=R3+_Timex
	R1=[R1]	// QImode move
	[R2]=R1	// QImode move
	R2=[_da1]	// QImode move
	R1=R3+_Timey
	R1=[R1]	// QImode move
	[R2]=R1	// QImode move
	R3=R3+1
	CMP R3,403	// QImode compare
	JA L116	// QImode LEU
	PC=L110
L116:
	call _Point	// call without return value
	pc=L107	// jump

	pop bp from [sp]
	retf
	.endp	// end of main

	.end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -