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

📄 main.asm

📁 利用凌阳A061单片机实现制作而成的温度控制器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	R1=BP+3
	R3=BP	// QImode move
	R3=BP+3
	[bp+9]=R3	// QImode move
	R4=[bp+9]	// QImode move
	R3=[R4]	// QImode move
	R4=R3+1
	R3=R1	// QImode move
	[R3]=R4	// QImode move
	pc=L42	// jump
L43:
.debug
	.dw '.stabn 0x44,0,230,',0,0
	.dd LM90-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM90:
	R3=BP	// QImode move
	R1=BP+2
	R3=BP	// QImode move
	R4=BP+2
	R3=R4	// QImode move
	R3=[R3]	// QImode move
	[bp+7]=R3	// QImode move
	R3=[bp+7]	// QImode move
	R3-=[BP]	// subqi3_r0R R3=R3-[BP]
	R4=BP	// QImode move
	R4=BP+1
	[bp+8]=R4	// QImode move
	R4=[bp+8]	// QImode move
	R3-=[R4]	// subqi3_r0R R3=R3-[R4]
	R4=R1	// QImode move
	[R4]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,231,',0,0
	.dd LM91-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM91:
	R1=BP	// QImode move
	R3=BP+2
	R1=R3	// QImode move
	R4=[R1]	// QImode move
	R1=R4	// QImode move
	pc=L31	// jump
.debug
	.dw '.stabn 0x44,0,232,',0,0
	.dd LM92-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM92:
LBE11:
.debug
	.dw '.stabn 0x44,0,232,',0,0
	.dd LM93-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM93:
L31:

	sp+=12
	pop bp from [sp]
	retf
	.endp	// end of adc_data_cmp

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB11-_adc_data_cmp
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "max:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "min:1",128,0,0,1',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "Sum:1",128,0,0,2',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "i:1",128,0,0,3',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE11-_adc_data_cmp
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME6-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LME6:
.code
.debug
	.dw '.stabs "key_value_process:F19",36,0,0,',0,0,offset _key_value_process,seg _key_value_process,0x0d,0x0a
.CODE
.public _key_value_process
_key_value_process:	.proc
.debug
	.dw '.stabn 0x44,0,241,',0,0
	.dd LM94-_key_value_process
	.dw 0x0d,0x0a
.code
LM94:
	// total=2, vars=2
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=2
	bp=sp+1

	R1=BP+5
	[bp+1]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,242,',0,0
	.dd LM95-_key_value_process
	.dw 0x0d,0x0a
.code
LM95:
LBB12:
.debug
	.dw '.stabn 0x44,0,243,',0,0
	.dd LM96-_key_value_process
	.dw 0x0d,0x0a
.code
LM96:
	R2=[bp+1]	// QImode move
	R1=[R2]	// QImode move
	CMP R1,1	// QImode compare
	JNZ L66	// QImode EQ
	PC=L54
L66:
	CMP R1,1	// QImode compare
	JNG L67	// QImode GT
	PC=L65
L67:
	CMP R1,0	// QImode test
	JNZ L68	// QImode EQ
	PC=L53
L68:
	pc=L63	// jump
L65:
	CMP R1,2	// QImode compare
	JNZ L69	// QImode EQ
	PC=L57
L69:
	CMP R1,4	// QImode compare
	JNZ L70	// QImode EQ
	PC=L60
L70:
	pc=L63	// jump
.debug
	.dw '.stabn 0x44,0,244,',0,0
	.dd LM97-_key_value_process
	.dw 0x0d,0x0a
.code
LM97:
L53:
	pc=L52	// jump
L54:
.debug
	.dw '.stabn 0x44,0,246,',0,0
	.dd LM98-_key_value_process
	.dw 0x0d,0x0a
.code
LM98:
	R1=[_status]	// QImode move
	CMP R1,0	// QImode test
	JZ L71	// QImode NE
	PC=L55
L71:
.debug
	.dw '.stabn 0x44,0,247,',0,0
	.dd LM99-_key_value_process
	.dw 0x0d,0x0a
.code
LM99:
	R1=[_guiLED_Value]	// QImode move
	R2=1	// QImode move
	[_guiLED_Value]=R1+R2
.debug
	.dw '.stabn 0x44,0,248,',0,0
	.dd LM100-_key_value_process
	.dw 0x0d,0x0a
.code
LM100:
	R1=[_guiLED_Value]	// QImode move
	CMP R1,10	// QImode compare
	JZ L72	// QImode NE
	PC=L55
L72:
.debug
	.dw '.stabn 0x44,0,249,',0,0
	.dd LM101-_key_value_process
	.dw 0x0d,0x0a
.code
LM101:
	R1=0	// QImode move
	[_guiLED_Value]=R1	// QImode move
L56:
L55:
.debug
	.dw '.stabn 0x44,0,251,',0,0
	.dd LM102-_key_value_process
	.dw 0x0d,0x0a
.code
LM102:
	pc=L52	// jump
L57:
.debug
	.dw '.stabn 0x44,0,253,',0,0
	.dd LM103-_key_value_process
	.dw 0x0d,0x0a
.code
LM103:
	R1=[_status]	// QImode move
	CMP R1,0	// QImode test
	JZ L73	// QImode NE
	PC=L58
L73:
.debug
	.dw '.stabn 0x44,0,254,',0,0
	.dd LM104-_key_value_process
	.dw 0x0d,0x0a
.code
LM104:
	R1=[_guiLED_Value+1]	// QImode move
	R2=1	// QImode move
	[_guiLED_Value+1]=R1+R2
.debug
	.dw '.stabn 0x44,0,255,',0,0
	.dd LM105-_key_value_process
	.dw 0x0d,0x0a
.code
LM105:
	R1=[_guiLED_Value+1]	// QImode move
	CMP R1,10	// QImode compare
	JZ L74	// QImode NE
	PC=L58
L74:
.debug
	.dw '.stabn 0x44,0,256,',0,0
	.dd LM106-_key_value_process
	.dw 0x0d,0x0a
.code
LM106:
	R1=0	// QImode move
	[_guiLED_Value+1]=R1	// QImode move
L59:
L58:
.debug
	.dw '.stabn 0x44,0,258,',0,0
	.dd LM107-_key_value_process
	.dw 0x0d,0x0a
.code
LM107:
	pc=L52	// jump
L60:
.debug
	.dw '.stabn 0x44,0,260,',0,0
	.dd LM108-_key_value_process
	.dw 0x0d,0x0a
.code
LM108:
	R1=[_status]	// QImode move
	CMP R1,0	// QImode test
	JZ L75	// QImode NE
	PC=L61
L75:
.debug
	.dw '.stabn 0x44,0,261,',0,0
	.dd LM109-_key_value_process
	.dw 0x0d,0x0a
.code
LM109:
LBB13:
	R1=_guiLED_Value	// QImode move
	[SP--]=R1	// QImode move
	call _temperature_speech_index	// call without return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,262,',0,0
	.dd LM110-_key_value_process
	.dw 0x0d,0x0a
.code
LM110:
	R1=1	// QImode move
	[_status]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,263,',0,0
	.dd LM111-_key_value_process
	.dw 0x0d,0x0a
.code
LM111:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _SACM_A2000_Initial	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,264,',0,0
	.dd LM112-_key_value_process
	.dw 0x0d,0x0a
.code
LM112:
	R1=2	// QImode move
	[SP--]=R1	// QImode move
	call _SACM_A2000_InitDecoder	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,265,',0,0
	.dd LM113-_key_value_process
	.dw 0x0d,0x0a
.code
LM113:
	R1=1	// QImode move
	[_guifgSpeechPlay]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,266,',0,0
	.dd LM114-_key_value_process
	.dw 0x0d,0x0a
.code
LM114:
	R1=[_guiLED_Value]	// QImode move
	R2=10	// QImode move
	mr=R1*R2	// r3=R1*R2 16bit=16bit*16bit
	R1=[_guiLED_Value+1]	// QImode move
	[_stPID]=R3+R1
.debug
	.dw '.stabn 0x44,0,267,',0,0
	.dd LM115-_key_value_process
	.dw 0x0d,0x0a
.code
LM115:
	R1=[_iaSpeech_index]	// QImode move
	[SP--]=R1	// QImode move
	call _speech_start_address	// call with return value
	SP=SP+1
	[_iAddrSpeech]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,268,',0,0
	.dd LM116-_key_value_process
	.dw 0x0d,0x0a
.code
LM116:
LBE13:
	pc=L62	// jump
L61:
.debug
	.dw '.stabn 0x44,0,270,',0,0
	.dd LM117-_key_value_process
	.dw 0x0d,0x0a
.code
LM117:
LBB14:
	call _turn_off_IRQ5	// call with return value
.debug
	.dw '.stabn 0x44,0,271,',0,0
	.dd LM118-_key_value_process
	.dw 0x0d,0x0a
.code
LM118:
	R1=0	// QImode move
	[_status]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,272,',0,0
	.dd LM119-_key_value_process
	.dw 0x0d,0x0a
.code
LM119:
LBE14:
L62:
.debug
	.dw '.stabn 0x44,0,273,',0,0
	.dd LM120-_key_value_process
	.dw 0x0d,0x0a
.code
LM120:
	pc=L52	// jump
L63:
.debug
	.dw '.stabn 0x44,0,274,',0,0
	.dd LM121-_key_value_process
	.dw 0x0d,0x0a
.code
LM121:
	pc=L52	// jump
L52:
.debug
	.dw '.stabn 0x44,0,276,',0,0
	.dd LM122-_key_value_process
	.dw 0x0d,0x0a
.code
LM122:
LBE12:
.debug
	.dw '.stabn 0x44,0,276,',0,0
	.dd LM123-_key_value_process
	.dw 0x0d,0x0a
.code
LM123:
L51:

	sp+=2
	pop bp from [sp]
	retf
	.endp	// end of key_value_process

.debug
	.dw '.stabs "key:p1",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB12-_key_value_process
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "iAddr:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB13-_key_value_process
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE13-_key_value_process
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB14-_key_value_process
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE14-_key_value_process
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE12-_key_value_process
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME7-_key_value_process
	.dw 0x0d,0x0a
.code
LME7:
.code
.debug
	.dw '.stabs "temperature_speech_index:F19",36,0,0,',0,0,offset _temperature_speech_index,seg _temperature_speech_index,0x0d,0x0a
.CODE
.public _temperature_speech_index
_temperature_speech_index:	.proc
.debug
	.dw '.stabn 0x44,0,285,',0,0
	.dd LM124-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM124:
	// total=0, vars=0
	// frame_pointer_needed: 1
	push bp to [sp]
	bp=sp+1

	R1=BP+3
.debug
	.dw '.stabn 0x44,0,286,',0,0
	.dd LM125-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM125:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	CMP R3,0	// QImode test
	JNZ L81	// QImode EQ
	PC=L77
L81:
.debug
	.dw '.stabn 0x44,0,287,',0,0
	.dd LM126-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM126:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	[_iaSpeech_index]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,288,',0,0
	.dd LM127-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM127:
	R2=10	// QImode move
	[_iaSpeech_index+1]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,289,',0,0
	.dd LM128-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM128:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R3=R2+1
	R4=R1	// QImode move
	[R4]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,291,',0,0
	.dd LM129-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM129:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	CMP R3,0	// QImode test
	JNZ L82	// QImode EQ
	PC=L78
L82:
.debug
	.dw '.stabn 0x44,0,292,',0,0
	.dd LM130-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM130:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	[_iaSpeech_index+2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,293,',0,0
	.dd LM131-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM131:
	R2=11	// QImode move
	[_iaSpeech_index+3]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,294,',0,0
	.dd LM132-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM132:
	R2=4	// QImode move
	[_iPlay_times]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,295,',0,0
	.dd LM133-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM133:
	pc=L79	// jump
L78:
.debug
	.dw '.stabn 0x44,0,297,',0,0
	.dd LM134-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM134:
	R2=3	// QImode move
	[_iPlay_times]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,298,',0,0
	.dd LM135-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM135:
	R2=11	// QImode move
	[_iaSpeech_index+2]=R2	// QImode move
L79:
.debug
	.dw '.stabn 0x44,0,301,',0,0
	.dd LM136-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM136:
	pc=L80	// jump
L77:
.debug
	.dw '.stabn 0x44,0,304,',0,0
	.dd LM137-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM137:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R3=R2+1
	R4=R1	// QImode move
	[R4]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,305,',0,0
	.dd LM138-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM138:
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	[_iaSpeech_index]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,306,',0,0
	.dd LM139-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM139:
	R2=11	// QImode move
	[_iaSpeech_index+1]=R2	// QImode move
.debug
	.dw '.stabn 0x44,0,307,',0,0
	.dd LM140-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM140:
	R2=2	// QImode move
	[_iPlay_times]=R2	// QImode move
L80:
.debug
	.dw '.stabn 0x44,0,309,',0,0
	.dd LM141-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM141:
.debug
	.dw '.stabn 0x44,0,309,',0,0
	.dd LM142-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LM142:
L76:

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

.debug
	.dw '.stabs "p_speech:p25=*4",160,0,0,3',0x0d,0x0a
.CODE
.debug
	.dw '.stabf ',0,0
	.dd LME8-_temperature_speech_index
	.dw 0x0d,0x0a
.code
LME8:
.code
.debug
	.dw '.stabs "speech_start_address:F1",36,0,0,',0,0,offset _speech_start_address,seg _speech_start_address,0x0d,0x0a
.CODE
.public _speech_start_address
_speech_start_address:	.proc
.debug
	.dw '.stabn 0x44,0,318,',0,0
	.dd LM143-_speech_start_address
	.dw 0x0d,0x0a
.code
LM143:
	// total=1, vars=1
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=1
	bp=sp+1

	R2=BP+4
.debug
	.dw '.stabn 0x44,0,319,',0,0
	.dd LM144-_speech_start_address
	.dw 0x0d,0x0a
.code
LM144:
LBB15:
.debug
	.dw '.stabn 0x44,0,320,',0,0
	.dd LM145-_speech_start_address
	.dw 0x0d,0x0a
.code
LM145:
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,11	// QImode compare
	JNA L99	// QImode GTU
	PC=L97
L99:
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R3=R1	// QImode move
	R1=R3	// QImode move
	R1=R1+L98
	R4=R1	// QImode move
	R3=[R4]	// QImode move
	pc=R3	// tablejump
.text
L98:
	.dw L85
	.dw L86
	.dw L87
	.dw L88
	.dw L89
	.dw L90
	.dw L91
	.dw L92
	.dw L93
	.dw L94
	.dw L95
	.dw L96
.code
.debug
	.dw '.stabn 0x44,0,321,',0,0
	.dd LM146-_speech_start_address
	.dw 0x0d,0x0a
.code
LM146:
L85:
	R1=[_RES_T046_16K_SA]	// QImode move
	[BP]=R1	// QImode move
	pc=L84	// jump
L86:
.debug
	.dw '.stabn 0x44,0,322,',0,0
	.dd LM147-_speech_start_address
	.dw 0x0d,0x0a
.code
LM147:
	R1=[_RES_T047_16K_SA]	// QImode move
	[BP]=R1	// QImode move
	pc=L84	// jump
L87:
.debug
	.dw '.stabn 0x44,0,323,',0,0
	.dd LM148-_speech_start_address
	.dw 0x0d,0x0a
.code
LM148:
	R1=[_RES_T048_16K_SA]	// QImode move
	[BP]=R1	// QImode move
	pc=L84	// jump
L88:
.debug
	.dw '.stabn 0x44,0,324,',0,0
	.dd LM149-_speech_start_address
	.dw 0x0d,0x0a
.code
LM149:
	R1=[_RES_T049_16K_SA]	// QImode move
	[BP]=R1	// QImode move
	pc=L84	// jump
L89:
.debug
	.dw '.stabn 0x44,0,325,',0,0
	.dd LM150-_speech_start_address
	.dw 0x0d,0x0a
.code
LM150:
	R1=[_RES_T050_16K_SA]	// QImode move
	[BP]=R1	// QImode move
	pc=L84	// jump
L90:
.debug
	.dw '.stabn 0x44,0,326,',0,0
	.dd LM151-_speech_start_address
	.dw 0x0d,0x0a
.code

⌨️ 快捷键说明

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