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

📄 main.asm

📁 关于凌阳单片机的应用--语音播报电子钟。功能为实时当前的时间。
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP=SP+2
	R2=R1+6
	[SP--]=R2	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,140,',0,0
	.dd LM41-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LM41:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=1000	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	R2=100	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP=SP+2
	R2=R1+6
	[SP--]=R2	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,141,',0,0
	.dd LM42-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LM42:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=100	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP=SP+2
	R2=R1+6
	[SP--]=R2	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,142,',0,0
	.dd LM43-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LM43:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	R2=R1+6
	[SP--]=R2	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,143,',0,0
	.dd LM44-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LM44:
	R1=21	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,144,',0,0
	.dd LM45-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LM45:
.debug
	.dw '.stabn 0x44,0,144,',0,0
	.dd LM46-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LM46:
L24:

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

.debug
	.dw '.stabs "YearTemp:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME4-_PlaySpeakYear
	.dw 0x0d,0x0a
.code
LME4:
.code
.debug
	.dw '.stabs "PlaySpeakMonth:F1",36,0,0,',0,0,offset _PlaySpeakMonth,seg _PlaySpeakMonth,0x0d,0x0a
.CODE
.public _PlaySpeakMonth
_PlaySpeakMonth:	.proc
.debug
	.dw '.stabn 0x44,0,149,',0,0
	.dd LM47-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM47:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,150,',0,0
	.dd LM48-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM48:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,9	// QImode compare
	JNG L33	// QImode GT
	PC=L26
L33:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2+6
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L27	// jump
L26:
.debug
	.dw '.stabn 0x44,0,151,',0,0
	.dd LM49-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM49:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,10	// QImode compare
	JZ L34	// QImode NE
	PC=L28
L34:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L27	// jump
L28:
.debug
	.dw '.stabn 0x44,0,152,',0,0
	.dd LM50-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM50:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,11	// QImode compare
	JZ L35	// QImode NE
	PC=L30
L35:
	R1=17	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L27	// jump
L30:
.debug
	.dw '.stabn 0x44,0,153,',0,0
	.dd LM51-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM51:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,12	// QImode compare
	JZ L36	// QImode NE
	PC=L27
L36:
	R1=18	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L32:
L31:
L29:
L27:
.debug
	.dw '.stabn 0x44,0,154,',0,0
	.dd LM52-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM52:
	R1=22	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,155,',0,0
	.dd LM53-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM53:
.debug
	.dw '.stabn 0x44,0,155,',0,0
	.dd LM54-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LM54:
L25:

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

.debug
	.dw '.stabs "MonthTemp:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME5-_PlaySpeakMonth
	.dw 0x0d,0x0a
.code
LME5:
.code
.debug
	.dw '.stabs "PlaySpeakDay:F1",36,0,0,',0,0,offset _PlaySpeakDay,seg _PlaySpeakDay,0x0d,0x0a
.CODE
.public _PlaySpeakDay
_PlaySpeakDay:	.proc
.debug
	.dw '.stabn 0x44,0,160,',0,0
	.dd LM55-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM55:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,160,',0,0
	.dd LM56-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM56:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP=SP+2
	CMP R1,1	// QImode compare
	JG L41	// QImode LE
	PC=L38
L41:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP=SP+2
	R2=R1+6
	[SP--]=R2	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L38:
.debug
	.dw '.stabn 0x44,0,161,',0,0
	.dd LM57-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM57:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP=SP+2
	CMP R1,0	// QImode test
	JG L42	// QImode LE
	PC=L39
L42:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L39:
.debug
	.dw '.stabn 0x44,0,162,',0,0
	.dd LM58-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM58:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	CMP R1,0	// QImode test
	JNZ L43	// QImode EQ
	PC=L40
L43:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	R2=R1+6
	[SP--]=R2	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L40:
.debug
	.dw '.stabn 0x44,0,163,',0,0
	.dd LM59-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM59:
	R1=23	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,164,',0,0
	.dd LM60-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM60:
.debug
	.dw '.stabn 0x44,0,164,',0,0
	.dd LM61-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LM61:
L37:

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

.debug
	.dw '.stabs "DayTemp:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME6-_PlaySpeakDay
	.dw 0x0d,0x0a
.code
LME6:
.code
.debug
	.dw '.stabs "PlaySpeakHour:F1",36,0,0,',0,0,offset _PlaySpeakHour,seg _PlaySpeakHour,0x0d,0x0a
.CODE
.public _PlaySpeakHour
_PlaySpeakHour:	.proc
.debug
	.dw '.stabn 0x44,0,169,',0,0
	.dd LM62-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM62:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R1=BP+4
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,170,',0,0
	.dd LM63-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM63:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,0	// QImode test
	JG L69	// QImode LE
	PC=L45
L69:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,7	// QImode compare
	JNG L70	// QImode GT
	PC=L45
L70:
.debug
	.dw '.stabn 0x44,0,171,',0,0
	.dd LM64-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM64:
	R1=2	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,172,',0,0
	.dd LM65-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM65:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,2	// QImode compare
	JZ L71	// QImode NE
	PC=L46
L71:
	R1=19	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L47	// jump
L46:
.debug
	.dw '.stabn 0x44,0,173,',0,0
	.dd LM66-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM66:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2+6
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L47:
.debug
	.dw '.stabn 0x44,0,174,',0,0
	.dd LM67-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM67:
	pc=L48	// jump
L45:
.debug
	.dw '.stabn 0x44,0,176,',0,0
	.dd LM68-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM68:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,7	// QImode compare
	JG L72	// QImode LE
	PC=L49
L72:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,12	// QImode compare
	JNG L73	// QImode GT
	PC=L49
L73:
.debug
	.dw '.stabn 0x44,0,177,',0,0
	.dd LM69-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM69:
	R1=3	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,178,',0,0
	.dd LM70-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM70:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,10	// QImode compare
	JNZ L74	// QImode EQ
	PC=L51
L74:
	CMP R1,10	// QImode compare
	JNL L75	// QImode LT
	PC=L54
L75:
	CMP R1,11	// QImode compare
	JNZ L76	// QImode EQ
	PC=L52
L76:
	CMP R1,12	// QImode compare
	JNZ L77	// QImode EQ
	PC=L53
L77:
	pc=L54	// jump
.debug
	.dw '.stabn 0x44,0,179,',0,0
	.dd LM71-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM71:
L51:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L50	// jump
L52:
.debug
	.dw '.stabn 0x44,0,180,',0,0
	.dd LM72-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM72:
	R1=17	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L50	// jump
L53:
.debug
	.dw '.stabn 0x44,0,181,',0,0
	.dd LM73-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM73:
	R1=18	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L50	// jump
L54:
.debug
	.dw '.stabn 0x44,0,182,',0,0
	.dd LM74-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM74:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2+6
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L50	// jump
L50:
.debug
	.dw '.stabn 0x44,0,184,',0,0
	.dd LM75-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM75:
	pc=L48	// jump
L49:
.debug
	.dw '.stabn 0x44,0,185,',0,0
	.dd LM76-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM76:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,12	// QImode compare
	JG L78	// QImode LE
	PC=L57
L78:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,19	// QImode compare
	JNG L79	// QImode GT
	PC=L57
L79:
.debug
	.dw '.stabn 0x44,0,186,',0,0
	.dd LM77-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM77:
	R1=4	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,187,',0,0
	.dd LM78-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM78:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,14	// QImode compare
	JZ L80	// QImode NE
	PC=L58
L80:
	R1=19	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L59	// jump
L58:
.debug
	.dw '.stabn 0x44,0,188,',0,0
	.dd LM79-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM79:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2+(-6)
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L59:
.debug
	.dw '.stabn 0x44,0,189,',0,0
	.dd LM80-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM80:
	pc=L48	// jump
L57:
.debug
	.dw '.stabn 0x44,0,191,',0,0
	.dd LM81-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM81:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,19	// QImode compare
	JG L81	// QImode LE
	PC=L48
L81:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,24	// QImode compare
	JNG L82	// QImode GT
	PC=L48
L82:
.debug
	.dw '.stabn 0x44,0,192,',0,0
	.dd LM82-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM82:
	R1=5	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,193,',0,0
	.dd LM83-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM83:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,23	// QImode compare
	JNZ L83	// QImode EQ
	PC=L64
L83:
	CMP R1,23	// QImode compare
	JNG L84	// QImode GT
	PC=L68
L84:
	CMP R1,22	// QImode compare
	JNZ L85	// QImode EQ
	PC=L63
L85:
	pc=L66	// jump
L68:
	CMP R1,24	// QImode compare
	JNZ L86	// QImode EQ
	PC=L65
L86:
	pc=L66	// jump
.debug
	.dw '.stabn 0x44,0,194,',0,0
	.dd LM84-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM84:
L63:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L48	// jump
L64:
.debug
	.dw '.stabn 0x44,0,195,',0,0
	.dd LM85-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM85:
	R1=17	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1

⌨️ 快捷键说明

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