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

📄 main.asm

📁 利用凌阳A061单片机实现制作而成的温度控制器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	R1=R2	// QImode move
	[R1++]=R3	// [RD]=RS HFmode, RD!=RS+1
	[R1--]=R4
L18:
.debug
	.dw '.stabn 0x44,0,164,',0,0
	.dd LM44-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM44:
	R1=BP	// QImode move
	R2=BP+4
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call __cvi1f2	// call with return value
	SP=SP+1
	R3=BP	// QImode move
	R4=BP+2
	[bp+8]=R4	// QImode move
	R4=[bp+8]	// QImode move
	R3=[R4++]	// RD=[RS] HFmode, RD+1=RS
	R4=[R4]
	[bp+6]=R3	// HFmode [BP+#IM6]=RS
	[bp+7]=R4
	R3=[bp+6]	// HFmode RD=[BP+#IM6]
	R4=[bp+7]
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	[BP++]=R1	// [RD]=RS HFmode, RD!=RS+1
	[BP--]=R2
.debug
	.dw '.stabn 0x44,0,165,',0,0
	.dd LM45-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM45:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// 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
	[_guiLED_Value]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,166,',0,0
	.dd LM46-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM46:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP=SP+2
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	[_guiLED_Value+1]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,167,',0,0
	.dd LM47-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM47:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	R3=0	// HFmode immediate to register move
	R4=16672
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP=SP+2
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP=SP+2
	[_guiLED_Value+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,168,',0,0
	.dd LM48-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM48:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP=SP+2
	CMP R1,[LsiTlast_12]	// QImode compare
	JNZ L23	// QImode EQ
	PC=L19
L23:
.debug
	.dw '.stabn 0x44,0,169,',0,0
	.dd LM49-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM49:
LBB6:
	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,170,',0,0
	.dd LM50-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM50:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _SACM_A2000_Initial	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,171,',0,0
	.dd LM51-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM51:
	R1=2	// QImode move
	[SP--]=R1	// QImode move
	call _SACM_A2000_InitDecoder	// call with return value
	SP=SP+1
.debug
	.dw '.stabn 0x44,0,172,',0,0
	.dd LM52-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM52:
	call _SP_INT_IRQ6	// call with return value
.debug
	.dw '.stabn 0x44,0,173,',0,0
	.dd LM53-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM53:
	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,174,',0,0
	.dd LM54-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM54:
	R1=1	// QImode move
	[_guifgSpeechPlay]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,175,',0,0
	.dd LM55-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM55:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP=SP+2
	[LsiTlast_12]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,176,',0,0
	.dd LM56-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM56:
LBE6:
L19:
.debug
	.dw '.stabn 0x44,0,177,',0,0
	.dd LM57-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM57:
	R1=0	// HFmode immediate to register move
	R2=16320
	[_stPID+1]=R1	// HFmode [Label]=RS
	[_stPID+2]=R2
.debug
	.dw '.stabn 0x44,0,178,',0,0
	.dd LM58-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM58:
	R1=0	// HFmode immediate to register move
	R2=16128
	[_stPID+3]=R1	// HFmode [Label]=RS
	[_stPID+4]=R2
.debug
	.dw '.stabn 0x44,0,179,',0,0
	.dd LM59-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM59:
	R1=0	// HFmode immediate to register move
	R2=0
	[_stPID+5]=R1	// HFmode [Label]=RS
	[_stPID+6]=R2
.debug
	.dw '.stabn 0x44,0,180,',0,0
	.dd LM60-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM60:
	R1=[BP++]	// RD=[RS] HFmode, RD!=RS
	R2=[BP--]
	R3=0	// HFmode immediate to register move
	R4=16672
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP=SP+2
	[SP--]=R1	// QImode move
	R1=_stPID	// QImode move
	[SP--]=R1	// QImode move
	call _PIDCalc	// call with return value
	SP=SP+2
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP=SP+2
	[_fOut]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,181,',0,0
	.dd LM61-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM61:
	call _active	// call without return value
L15:
.debug
	.dw '.stabn 0x44,0,183,',0,0
	.dd LM62-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM62:
LBE5:
.debug
	.dw '.stabn 0x44,0,183,',0,0
	.dd LM63-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LM63:
L14:

	sp+=9
	pop bp from [sp]
	retf
	.endp	// end of display_speech_ADC_temperature

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB5-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "fT:12",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "K:12",128,0,0,2',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "adc_data:1",128,0,0,4',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "siTlast:V1",38,0,0,',0,0,offset LsiTlast_12,seg LsiTlast_12,0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB6-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE6-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE5-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME4-_display_speech_ADC_temperature
	.dw 0x0d,0x0a
.code
LME4:
.code
.debug
	.dw '.stabs "active:F19",36,0,0,',0,0,offset _active,seg _active,0x0d,0x0a
.CODE
.public _active
_active:	.proc
.debug
	.dw '.stabn 0x44,0,192,',0,0
	.dd LM64-_active
	.dw 0x0d,0x0a
.code
LM64:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,193,',0,0
	.dd LM65-_active
	.dw 0x0d,0x0a
.code
LM65:
LBB7:
	R1=[_fOut]	// QImode move
	CMP R1,0	// QImode test
	JNG L29	// QImode GT
	PC=L25
L29:
.debug
	.dw '.stabn 0x44,0,194,',0,0
	.dd LM66-_active
	.dw 0x0d,0x0a
.code
LM66:
LBB8:
	call _turn_off_relay	// call with return value
.debug
	.dw '.stabn 0x44,0,195,',0,0
	.dd LM67-_active
	.dw 0x0d,0x0a
.code
LM67:
	call _turn_off_timerB	// call with return value
.debug
	.dw '.stabn 0x44,0,196,',0,0
	.dd LM68-_active
	.dw 0x0d,0x0a
.code
LM68:
LBE8:
	pc=L26	// jump
L25:
.debug
	.dw '.stabn 0x44,0,198,',0,0
	.dd LM69-_active
	.dw 0x0d,0x0a
.code
LM69:
LBB9:
	R1=[_fOut]	// QImode move
	[SP--]=R1	// QImode move
	call __cvi1f2	// call with return value
	SP=SP+1
	[bp+1]=R1	// HFmode [BP+#IM6]=RS
	[bp+2]=R2
	R1=[_stPID+1]	// HFmode RD=[Label]
	R2=[_stPID+2]
	R3=0	// HFmode immediate to register move
	R4=16880
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP=SP+4
	push R1,R2 to [sp]	// pushhf
	R1=[bp+1]	// HFmode RD=[BP+#IM6]
	R2=[bp+2]
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP=SP+4
	CMP R1,1	// QImode compare
	JG L30	// QImode LE
	PC=L27
L30:
.debug
	.dw '.stabn 0x44,0,199,',0,0
	.dd LM70-_active
	.dw 0x0d,0x0a
.code
LM70:
	call _turn_on_relay	// call with return value
	pc=L26	// jump
L27:
.debug
	.dw '.stabn 0x44,0,200,',0,0
	.dd LM71-_active
	.dw 0x0d,0x0a
.code
LM71:
LBB10:
	call _turn_on_relay	// call with return value
	call _SP_INT_TIMEB	// call with return value
LBE10:
L28:
.debug
	.dw '.stabn 0x44,0,202,',0,0
	.dd LM72-_active
	.dw 0x0d,0x0a
.code
LM72:
LBE9:
L26:
.debug
	.dw '.stabn 0x44,0,203,',0,0
	.dd LM73-_active
	.dw 0x0d,0x0a
.code
LM73:
LBE7:
.debug
	.dw '.stabn 0x44,0,203,',0,0
	.dd LM74-_active
	.dw 0x0d,0x0a
.code
LM74:
L24:

	sp+=3
	pop bp from [sp]
	retf
	.endp	// end of active

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB7-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB8-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE8-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB9-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB10-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE10-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE9-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE7-_active
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME5-_active
	.dw 0x0d,0x0a
.code
LME5:
.code
.debug
	.dw '.stabs "adc_data_cmp:F1",36,0,0,',0,0,offset _adc_data_cmp,seg _adc_data_cmp,0x0d,0x0a
.CODE
.public _adc_data_cmp
_adc_data_cmp:	.proc
.debug
	.dw '.stabn 0x44,0,213,',0,0
	.dd LM75-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM75:
	// total=12, vars=12
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=12
	bp=sp+1

	R2=BP+15
.debug
	.dw '.stabn 0x44,0,214,',0,0
	.dd LM76-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM76:
LBB11:
.debug
	.dw '.stabn 0x44,0,218,',0,0
	.dd LM77-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM77:
	R1=[_giADC_DataSave+1]	// QImode move
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,219,',0,0
	.dd LM78-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM78:
	R1=BP	// QImode move
	R3=BP+3
	R1=1	// QImode move
	R4=R3	// QImode move
	[R4]=R1	// QImode move
L32:
	R1=BP	// QImode move
	R3=BP+3
	R4=R3	// QImode move
	R1=[R4]	// QImode move
	CMP R1,10	// QImode compare
	JG L46	// QImode LE
	PC=L35
L46:
	pc=L33	// jump
L35:
.debug
	.dw '.stabn 0x44,0,220,',0,0
	.dd LM79-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM79:
	R1=BP	// QImode move
	R3=BP+3
	R1=_giADC_DataSave	// QImode move
	R4=R3	// QImode move
	R3=[R4]	// QImode move
	R1+=R3	// addqi3_r0r
	R4=R1	// QImode move
	R3=[R4]	// QImode move
	CMP R3,[BP]	// QImode compare
	JA L47	// QImode LEU
	PC=L34
L47:
.debug
	.dw '.stabn 0x44,0,221,',0,0
	.dd LM80-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM80:
	R1=BP	// QImode move
	R3=BP+3
	R1=_giADC_DataSave	// QImode move
	R4=R3	// QImode move
	R3=[R4]	// QImode move
	R1+=R3	// addqi3_r0r
	R4=R1	// QImode move
	R3=[R4]	// QImode move
	[BP]=R3	// QImode move
L36:
.debug
	.dw '.stabn 0x44,0,219,',0,0
	.dd LM81-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM81:
L34:
	R1=BP	// QImode move
	R3=BP+3
	R4=BP	// QImode move
	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=L32	// jump
L33:
.debug
	.dw '.stabn 0x44,0,223,',0,0
	.dd LM82-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM82:
	R3=BP	// QImode move
	R1=BP+1
	R3=BP	// QImode move
	R4=BP+3
	R3=_giADC_DataSave	// QImode move
	[bp+10]=R3	// QImode move
	R3=R4	// QImode move
	R4=[R3]	// QImode move
	R3=[bp+10]	// QImode move
	R3+=R4	// addqi3_r0r
	R4=R3	// QImode move
	R4=[R4]	// QImode move
	[bp+9]=R4	// QImode move
	R3=[bp+9]	// QImode move
	R4=R1	// QImode move
	[R4]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,224,',0,0
	.dd LM83-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM83:
	R1=BP	// QImode move
	R3=BP+3
	R1=1	// QImode move
	R4=R3	// QImode move
	[R4]=R1	// QImode move
L37:
	R1=BP	// QImode move
	R3=BP+3
	R4=R3	// QImode move
	R1=[R4]	// QImode move
	CMP R1,10	// QImode compare
	JG L48	// QImode LE
	PC=L40
L48:
	pc=L38	// jump
L40:
.debug
	.dw '.stabn 0x44,0,225,',0,0
	.dd LM84-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM84:
	R1=BP	// QImode move
	R3=BP+3
	R1=_giADC_DataSave	// QImode move
	R4=R3	// QImode move
	R3=[R4]	// QImode move
	R1+=R3	// addqi3_r0r
	R3=BP	// QImode move
	R4=BP+1
	R3=R1	// QImode move
	R1=[R3]	// QImode move
	R3=R4	// QImode move
	CMP R1,[R3]	// QImode compare
	JB L49	// QImode GEU
	PC=L39
L49:
.debug
	.dw '.stabn 0x44,0,226,',0,0
	.dd LM85-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM85:
	R3=BP	// QImode move
	R1=BP+1
	R3=BP	// QImode move
	R4=BP+3
	R3=_giADC_DataSave	// QImode move
	[bp+10]=R3	// QImode move
	R3=R4	// QImode move
	R4=[R3]	// QImode move
	R3=[bp+10]	// QImode move
	R3+=R4	// addqi3_r0r
	R4=R3	// QImode move
	R4=[R4]	// QImode move
	[bp+9]=R4	// QImode move
	R3=[bp+9]	// QImode move
	R4=R1	// QImode move
	[R4]=R3	// QImode move
L41:
.debug
	.dw '.stabn 0x44,0,224,',0,0
	.dd LM86-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM86:
L39:
	R1=BP	// QImode move
	R3=BP+3
	R4=BP	// QImode move
	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=L37	// jump
L38:
.debug
	.dw '.stabn 0x44,0,228,',0,0
	.dd LM87-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM87:
	R1=BP	// QImode move
	R3=BP+3
	R1=1	// QImode move
	R4=R3	// QImode move
	[R4]=R1	// QImode move
L42:
	R1=BP	// QImode move
	R3=BP+3
	R4=R3	// QImode move
	R1=[R4]	// QImode move
	CMP R1,10	// QImode compare
	JG L50	// QImode LE
	PC=L45
L50:
	pc=L43	// jump
L45:
.debug
	.dw '.stabn 0x44,0,229,',0,0
	.dd LM88-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM88:
	R3=BP	// QImode move
	R1=BP+2
	[bp+11]=R1	// QImode move
	R4=BP	// QImode move
	R3=BP+2
	[bp+10]=R3	// QImode move
	R4=BP	// QImode move
	R4=BP+3
	[bp+4]=R4	// QImode move
	R1=_giADC_DataSave	// QImode move
	[bp+9]=R1	// QImode move
	R3=[bp+4]	// QImode move
	R3=[R3]	// QImode move
	[bp+5]=R3	// QImode move
	R4=[bp+9]	// QImode move
	R1=[bp+5]	// QImode move
	R4+=R1	// addqi3_r0r
	R3=[bp+10]	// QImode move
	R3=[R3]	// QImode move
	[bp+6]=R3	// QImode move
	R3=[bp+6]	// QImode move
	R1=R4	// QImode move
	R3+=[R1]	// addqi3_r0R
	R4=[bp+11]	// QImode move
	[R4]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,228,',0,0
	.dd LM89-_adc_data_cmp
	.dw 0x0d,0x0a
.code
LM89:
L44:
	R1=BP	// QImode move
	R3=BP+3
	R4=BP	// QImode move

⌨️ 快捷键说明

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