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

📄 main.asm

📁 关于凌阳单片机的应用--语音播报电子钟。功能为实时当前的时间。
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	pc=L48	// jump
L65:
.debug
	.dw '.stabn 0x44,0,196,',0,0
	.dd LM86-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM86:
	R1=18	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L48	// jump
L66:
.debug
	.dw '.stabn 0x44,0,197,',0,0
	.dd LM87-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM87:
	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=L48	// jump
L62:
L61:
L60:
L56:
L48:
.debug
	.dw '.stabn 0x44,0,200,',0,0
	.dd LM88-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM88:
	R1=24	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,201,',0,0
	.dd LM89-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM89:
.debug
	.dw '.stabn 0x44,0,201,',0,0
	.dd LM90-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LM90:
L44:

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

.debug
	.dw '.stabs "DayTemp:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME7-_PlaySpeakHour
	.dw 0x0d,0x0a
.code
LME7:
.code
.debug
	.dw '.stabs "PlaySpeakMinute:F1",36,0,0,',0,0,offset _PlaySpeakMinute,seg _PlaySpeakMinute,0x0d,0x0a
.CODE
.public _PlaySpeakMinute
_PlaySpeakMinute:	.proc
.debug
	.dw '.stabn 0x44,0,205,',0,0
	.dd LM91-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM91:
	// 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,206,',0,0
	.dd LM92-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM92:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,0	// QImode test
	JZ L93	// QImode NE
	PC=L88
L93:
	R1=20	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
	pc=L89	// jump
L88:
.debug
	.dw '.stabn 0x44,0,208,',0,0
	.dd LM93-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM93:
	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 L94	// QImode LE
	PC=L90
L94:
	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
L90:
.debug
	.dw '.stabn 0x44,0,209,',0,0
	.dd LM94-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM94:
	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 L95	// QImode LE
	PC=L91
L95:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L91:
.debug
	.dw '.stabn 0x44,0,210,',0,0
	.dd LM95-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM95:
	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 L96	// QImode EQ
	PC=L92
L96:
	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
L92:
.debug
	.dw '.stabn 0x44,0,211,',0,0
	.dd LM96-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM96:
	R1=25	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L89:
.debug
	.dw '.stabn 0x44,0,213,',0,0
	.dd LM97-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM97:
.debug
	.dw '.stabn 0x44,0,213,',0,0
	.dd LM98-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LM98:
L87:

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

.debug
	.dw '.stabs "MinTemp:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME8-_PlaySpeakMinute
	.dw 0x0d,0x0a
.code
LME8:
.code
.debug
	.dw '.stabs "PlaySpeakSecond:F1",36,0,0,',0,0,offset _PlaySpeakSecond,seg _PlaySpeakSecond,0x0d,0x0a
.CODE
.public _PlaySpeakSecond
_PlaySpeakSecond:	.proc
.debug
	.dw '.stabn 0x44,0,217,',0,0
	.dd LM99-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM99:
	// 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,217,',0,0
	.dd LM100-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM100:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,0	// QImode test
	JZ L102	// QImode NE
	PC=L98
L102:
	R1=[BP]	// QImode move
	R2=[R1]	// QImode move
	R1=R2+6
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L98:
.debug
	.dw '.stabn 0x44,0,218,',0,0
	.dd LM101-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM101:
	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 L103	// QImode LE
	PC=L99
L103:
	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
L99:
.debug
	.dw '.stabn 0x44,0,219,',0,0
	.dd LM102-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM102:
	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 L104	// QImode LE
	PC=L100
L104:
	R1=16	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
L100:
.debug
	.dw '.stabn 0x44,0,220,',0,0
	.dd LM103-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM103:
	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 L105	// QImode EQ
	PC=L101
L105:
	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
L101:
.debug
	.dw '.stabn 0x44,0,221,',0,0
	.dd LM104-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM104:
	R1=26	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,222,',0,0
	.dd LM105-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM105:
.debug
	.dw '.stabn 0x44,0,222,',0,0
	.dd LM106-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LM106:
L97:

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

.debug
	.dw '.stabs "SecondTemp:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME9-_PlaySpeakSecond
	.dw 0x0d,0x0a
.code
LME9:
.code
.debug
	.dw '.stabs "SpeakTime:F19",36,0,0,',0,0,offset _SpeakTime,seg _SpeakTime,0x0d,0x0a
.CODE
.public _SpeakTime
_SpeakTime:	.proc
.debug
	.dw '.stabn 0x44,0,228,',0,0
	.dd LM107-_SpeakTime
	.dw 0x0d,0x0a
.code
LM107:
	// 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,229,',0,0
	.dd LM108-_SpeakTime
	.dw 0x0d,0x0a
.code
LM108:
	R2=[BP]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,1	// QImode compare
	JZ L109	// QImode NE
	PC=L107
L109:
.debug
	.dw '.stabn 0x44,0,231,',0,0
	.dd LM109-_SpeakTime
	.dw 0x0d,0x0a
.code
LM109:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _PlayAdjustTime	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,232,',0,0
	.dd LM110-_SpeakTime
	.dw 0x0d,0x0a
.code
LM110:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _PlayAdjustTime	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,233,',0,0
	.dd LM111-_SpeakTime
	.dw 0x0d,0x0a
.code
LM111:
	R1=2	// QImode move
	[SP--]=R1	// QImode move
	call _PlayAdjustTime	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,234,',0,0
	.dd LM112-_SpeakTime
	.dw 0x0d,0x0a
.code
LM112:
	pc=L108	// jump
L107:
.debug
	.dw '.stabn 0x44,0,237,',0,0
	.dd LM113-_SpeakTime
	.dw 0x0d,0x0a
.code
LM113:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,238,',0,0
	.dd LM114-_SpeakTime
	.dw 0x0d,0x0a
.code
LM114:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _PlayRespond	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,239,',0,0
	.dd LM115-_SpeakTime
	.dw 0x0d,0x0a
.code
LM115:
	R1=3	// QImode move
	[SP--]=R1	// QImode move
	call _PlayAdjustTime	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,240,',0,0
	.dd LM116-_SpeakTime
	.dw 0x0d,0x0a
.code
LM116:
	R1=4	// QImode move
	[SP--]=R1	// QImode move
	call _PlayAdjustTime	// call with return value
	SP=SP+1
L108:
.debug
	.dw '.stabn 0x44,0,242,',0,0
	.dd LM117-_SpeakTime
	.dw 0x0d,0x0a
.code
LM117:
.debug
	.dw '.stabn 0x44,0,242,',0,0
	.dd LM118-_SpeakTime
	.dw 0x0d,0x0a
.code
LM118:
L106:

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

.debug
	.dw '.stabs "TimeType:p1",160,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME10-_SpeakTime
	.dw 0x0d,0x0a
.code
LME10:
.code
.debug
	.dw '.stabs "main:F1",36,0,0,',0,0,offset _main,seg _main,0x0d,0x0a
.CODE
.public _main
_main:	.proc
.debug
	.dw '.stabn 0x44,0,250,',0,0
	.dd LM119-_main
	.dw 0x0d,0x0a
.code
LM119:
	// 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,251,',0,0
	.dd LM120-_main
	.dw 0x0d,0x0a
.code
LM120:
LBB7:
	call _System_Initial	// call with return value
.debug
	.dw '.stabn 0x44,0,253,',0,0
	.dd LM121-_main
	.dw 0x0d,0x0a
.code
LM121:
L111:
	pc=L113	// jump
	pc=L112	// jump
L113:
.debug
	.dw '.stabn 0x44,0,255,',0,0
	.dd LM122-_main
	.dw 0x0d,0x0a
.code
LM122:
LBB8:
	call _Key_Scan_ServiceLoop	// call with return value
.debug
	.dw '.stabn 0x44,0,258,',0,0
	.dd LM123-_main
	.dw 0x0d,0x0a
.code
LM123:
	R1=[_Key]	// QImode move
	CMP R1,1	// QImode compare
	JZ L143	// QImode NE
	PC=L114
L143:
	R1=[_KeyStatus]	// QImode move
	CMP R1,0	// QImode test
	JZ L144	// QImode NE
	PC=L114
L144:
.debug
	.dw '.stabn 0x44,0,260,',0,0
	.dd LM124-_main
	.dw 0x0d,0x0a
.code
LM124:
	R1=1	// QImode move
	[_KeyCount]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM125-_main
	.dw 0x0d,0x0a
.code
LM125:
	R1=0	// QImode move
	[_Key]=R1	// QImode move
L114:
.debug
	.dw '.stabn 0x44,0,263,',0,0
	.dd LM126-_main
	.dw 0x0d,0x0a
.code
LM126:
	R1=[_Key]	// QImode move
	CMP R1,(-32767)	// QImode compare
	JZ L145	// QImode NE
	PC=L115
L145:
	R1=[_KeyStatus]	// QImode move
	CMP R1,0	// QImode test
	JZ L146	// QImode NE
	PC=L115
L146:
.debug
	.dw '.stabn 0x44,0,265,',0,0
	.dd LM127-_main
	.dw 0x0d,0x0a
.code
LM127:
	R1=[_KeyCount]	// QImode move
	R2=1	// QImode move
	[_KeyCount]=R1+R2
.debug
	.dw '.stabn 0x44,0,266,',0,0
	.dd LM128-_main
	.dw 0x0d,0x0a
.code
LM128:
	R1=0	// QImode move
	[_Key]=R1	// QImode move
L115:
.debug
	.dw '.stabn 0x44,0,269,',0,0
	.dd LM129-_main
	.dw 0x0d,0x0a
.code
LM129:
	R1=[_KeyPressFlag]	// QImode move
	CMP R1,0	// QImode test
	JZ L147	// QImode NE
	PC=L116
L147:
	R1=[_KeyCount]	// QImode move
	CMP R1,0	// QImode test
	JNZ L148	// QImode EQ
	PC=L116
L148:
.debug
	.dw '.stabn 0x44,0,271,',0,0
	.dd LM130-_main
	.dw 0x0d,0x0a
.code
LM130:
	R1=[_KeyCount]	// QImode move
	CMP R1,19	// QImode compare
	JNA L149	// QImode GTU
	PC=L117
L149:
.debug
	.dw '.stabn 0x44,0,273,',0,0
	.dd LM131-_main
	.dw 0x0d,0x0a
.code
LM131:
	R1=[_YearOrTime]	// QImode move
	R2=1	// QImode move
	[_YearOrTime]=R1^R2
.debug
	.dw '.stabn 0x44,0,274,',0,0
	.dd LM132-_main
	.dw 0x0d,0x0a
.code
LM132:
	R1=[_YearOrTime]	// QImode move
	[SP--]=R1	// QImode move
	call _SpeakTime	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,275,',0,0
	.dd LM133-_main
	.dw 0x0d,0x0a
.code
LM133:
	R1=0	// QImode move
	[_KeyCount]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,276,',0,0
	.dd LM134-_main
	.dw 0x0d,0x0a
.code
LM134:
	pc=L116	// jump
L117:
.debug
	.dw '.stabn 0x44,0,277,',0,0
	.dd LM135-_main
	.dw 0x0d,0x0a
.code
LM135:
	R1=[_KeyCount]	// QImode move
	CMP R1,19	// QImode compare
	JA L150	// QImode LEU
	PC=L116
L150:
.debug
	.dw '.stabn 0x44,0,279,',0,0
	.dd LM136-_main
	.dw 0x0d,0x0a
.code
LM136:
LBB9:
	R1=0	// QImode move
	[_KeyCount]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,280,',0,0
	.dd LM137-_main
	.dw 0x0d,0x0a
.code

⌨️ 快捷键说明

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