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

📄 main.asm

📁 单片机开发的数字电压表,带保护提示功能,精确度比较高
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	[bp+46]=R1	// QImode move
	[bp+47]=R2	// QImode move
	R2=BP+65
	R1=[R2]	// QImode move
	//split same, R1, [R1]
	R2=R1	// QImode move
	R1=[R2++]	// QImode move
	R2=[R2--]	// QImode move
	//split [bp+48], R1
	[bp+48]=R1	// QImode move
	[bp+49]=R2	// QImode move
	R2=[bp+48]	// QImode move
	[bp+50]=R2	// QImode move
	R1=[bp+46]	// QImode move
	R1 = R1 + [bp+50]	//addqi3
	[bp+50]=R1	// QImode move
	R3=[bp+50]	// QImode move
	R1=1	// QImode move
	R2=BP+65
	[R2]=R1	// QImode move
	R2=[bp+50]	// QImode move
	R1=[bp+48]	// QImode move
	CMP R2,R1	// QImode compare
	NSJB L17	//QImode LTU
	R1=0	// QImode move
	R2=BP+65
	[R2]=R1	// QImode move
L17:
	R2=[bp+49]	// QImode move
	[bp+51]=R2	// QImode move
	R1=[bp+47]	// QImode move
	R1 = R1 + [bp+51]	//addqi3
	[bp+51]=R1	// QImode move
	R4=[bp+51]	// QImode move
	R2=[bp+51]	// QImode move
	[bp+52]=R2	// QImode move
	R1=[bp+52]	// QImode move
	R2=BP+65
	R1 = R1 + [R2]	//addqi3
	[bp+52]=R1	// QImode move
	R4=[bp+52]	// QImode move
	R1=BP+64
	R1=[R1]	// QImode move
	//split [R1], R3
	[R1++]=R3	// QImode move
	[R1--]=R4	// QImode move
.debug
	.dw '.stabn 0x44,0,111,',0,0
	.dd LM36-_main
	.dw 0x0d,0x0a
.code
LM36:
	R1=BP	// QImode move
	R2=BP+1
	R3=BP	// QImode move
	R1=BP+1
	R2=BP	// QImode move
	R3=BP+1
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+1
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,108,',0,0
	.dd LM37-_main
	.dw 0x0d,0x0a
.code
LM37:
L15:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
	pc=L13	// Indirect jump
L14:
.debug
	.dw '.stabn 0x44,0,113,',0,0
	.dd LM38-_main
	.dw 0x0d,0x0a
.code
LM38:
	R1=BP	// QImode move
	R3=BP+12
	[bp+53]=R3	// QImode move
	R1=BP	// QImode move
	R3=BP+13
	R4=R3	// QImode move
	//split R1, [R4]
	R1=[R4++]	// QImode move
	R2=[R4--]	// QImode move
	//split R3, 20
	R3=20	// QImode move
	R4=0	// QImode move
	push R3,R4 to [sp]	// pushhi
	push R1,R2 to [sp]	// pushhi
	call __divi2	// call with return value
	SP = SP + 4	//SP
	R3=R1	// QImode move
	R1=[bp+53]	// QImode move
	[R1]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,114,',0,0
	.dd LM39-_main
	.dw 0x0d,0x0a
.code
LM39:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+25
	[bp+54]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+12
	R1=R2	// QImode move
	R3=[R1]
	R4=0
	push R3,R4 to [sp]	// pushhi
	call __cvi2f2	// call with return value
	SP = SP + 2	//SP
	R3=13107	// HFmode immediate to register move
	R4=16467
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP = SP + 4	//SP
	R3=49152	// HFmode immediate to register move
	R4=18303
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __divf2	// call with return value
	SP = SP + 4	//SP
	R3=[bp+54]	// QImode move
	[R3++]=R1	// [RD]=RS HFmode, RD!=RS+1
	[R3--]=R2
.debug
	.dw '.stabn 0x44,0,116,',0,0
	.dd LM40-_main
	.dw 0x0d,0x0a
.code
LM40:
	R1=BP	// QImode move
	R4=BP+7
	[bp+55]=R4	// QImode move
	R1=BP	// QImode move
	R3=BP+15
	R2=R3	// QImode move
	R1=R3+27
	R2=BP	// QImode move
	R3=BP+15
	R2=R3	// QImode move
	R4=R3+25
	R2=BP+67
	[R2]=R4	// QImode move
	R3=R1	// QImode move
	R4=R3-1	// RD=[RS] HFmode, RD==RS
	pop R3, R4 from [R4]
	R2=BP+69
	[R2++]=R3	// [RD]=RS HFmode, RD!=RS+1
	[R2--]=R4
	R1=BP+67
	R2=[R1]	// QImode move
	R1=[R2++]	// RD=[RS] HFmode, RD+1=RS
	R2=[R2]
	R3=BP+67
	[R3++]=R1	// [RD]=RS HFmode, RD!=RS+1
	[R3--]=R2
	R2=BP+67
	R1=[R2++]	// RD=[RS] HFmode, RD+1=RS
	R2=[R2]
	push R1,R2 to [sp]	// pushhf
	R2=BP+69
	R1=[R2++]	// RD=[RS] HFmode, RD+1=RS
	R2=[R2]
	push R1,R2 to [sp]	// pushhf
	call __subf2	// call with return value
	SP = SP + 4	//SP
	R3=[bp+55]	// QImode move
	[R3++]=R1	// [RD]=RS HFmode, RD!=RS+1
	[R3--]=R2
.debug
	.dw '.stabn 0x44,0,117,',0,0
	.dd LM41-_main
	.dw 0x0d,0x0a
.code
LM41:
	R1=BP	// QImode move
	R3=BP+7
	R4=R3	// QImode move
	R1=[R4++]	// RD=[RS] HFmode, RD!=RS
	R2=[R4--]
	R3=52429	// HFmode immediate to register move
	R4=15820
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP = SP + 4	//SP
	CMP R1,1	// QImode compare
	NSJNL L18	//QImode GE
	R1=BP	// QImode move
	R3=BP+7
	R4=R3	// QImode move
	R1=[R4++]	// RD=[RS] HFmode, RD!=RS
	R2=[R4--]
	R3=52429	// HFmode immediate to register move
	R4=48588
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __cmpf2	// call with return value
	SP = SP + 4	//SP
	CMP R1,1	// QImode compare
	NSJNG L18	//QImode LE
.debug
	.dw '.stabn 0x44,0,120,',0,0
	.dd LM42-_main
	.dw 0x0d,0x0a
.code
LM42:
	R1=BP	// QImode move
	R2=BP+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L19	//QImode NE
.debug
	.dw '.stabn 0x44,0,123,',0,0
	.dd LM43-_main
	.dw 0x0d,0x0a
.code
LM43:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=9	// QImode move
	[SP--]=R1	// QImode move
	call _Set_IOB_Bit	// call with return value
	SP = SP + 5	//SP
.debug
	.dw '.stabn 0x44,0,124,',0,0
	.dd LM44-_main
	.dw 0x0d,0x0a
.code
LM44:
	R1=BP	// QImode move
	R2=BP+2
	R3=BP	// QImode move
	R1=BP+2
	R2=BP	// QImode move
	R3=BP+2
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+1
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,125,',0,0
	.dd LM45-_main
	.dw 0x0d,0x0a
.code
LM45:
	pc=L20	// Indirect jump
L19:
.debug
	.dw '.stabn 0x44,0,126,',0,0
	.dd LM46-_main
	.dw 0x0d,0x0a
.code
LM46:
	R1=BP	// QImode move
	R2=BP+2
	R3=BP	// QImode move
	R1=BP+2
	R2=BP	// QImode move
	R3=BP+2
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+1
	R2=R1	// QImode move
	[R2]=R3	// QImode move
L20:
.debug
	.dw '.stabn 0x44,0,127,',0,0
	.dd LM47-_main
	.dw 0x0d,0x0a
.code
LM47:
	pc=L21	// Indirect jump
L18:
.debug
	.dw '.stabn 0x44,0,130,',0,0
	.dd LM48-_main
	.dw 0x0d,0x0a
.code
LM48:
	R1=BP	// QImode move
	R2=BP+5
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	CMP R1,255	// QImode compare
	NSJG L22	//QImode GT
	R1=BP	// QImode move
	R2=BP+6
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	CMP R1,0	// QImode test
	NSJNZ L22	//QImode NE
.debug
	.dw '.stabn 0x44,0,132,',0,0
	.dd LM49-_main
	.dw 0x0d,0x0a
.code
LM49:
	R2=BP	// QImode move
	R1=BP+5
	R2=BP	// QImode move
	R3=BP+5
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R3=R2+1
	R2=R1	// QImode move
	[R2]=R3	// QImode move
.debug
	.dw '.stabn 0x44,0,134,',0,0
	.dd LM50-_main
	.dw 0x0d,0x0a
.code
LM50:
	pc=L21	// Indirect jump
L22:
.debug
	.dw '.stabn 0x44,0,137,',0,0
	.dd LM51-_main
	.dw 0x0d,0x0a
.code
LM51:
LBB4:
	R1=BP	// QImode move
	R2=BP+6
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,138,',0,0
	.dd LM52-_main
	.dw 0x0d,0x0a
.code
LM52:
	R1=BP	// QImode move
	R2=BP+5
	R1=0	// QImode move
	R4=R2	// QImode move
	[R4]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,139,',0,0
	.dd LM53-_main
	.dw 0x0d,0x0a
.code
LM53:
	R1=BP	// QImode move
	R2=BP+2
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,140,',0,0
	.dd LM54-_main
	.dw 0x0d,0x0a
.code
LM54:
	R1=BP	// QImode move
	R3=BP+15
	R2=R3	// QImode move
	R1=R3+27
	R2=BP	// QImode move
	R3=BP+15
	R2=R3	// QImode move
	R2=R3+25
	R4=BP+67
	[R4]=R2	// QImode move
	R4=BP+67
	R3=[R4]	// QImode move
	R4=R3-1	// RD=[RS] HFmode, RD==RS
	pop R3, R4 from [R4]
	[bp+56]=R3	// HFmode [BP+#IM6]=RS
	[bp+57]=R4
	R3=[bp+56]	// HFmode RD=[BP+#IM6]
	R4=[bp+57]
	R2=R1	// QImode move
	[R2++]=R3	// [RD]=RS HFmode, RD!=RS+1
	[R2--]=R4
.debug
	.dw '.stabn 0x44,0,141,',0,0
	.dd LM55-_main
	.dw 0x0d,0x0a
.code
LM55:
	R1=BP	// QImode move
	R3=BP+10
	[bp+58]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+25
	R4=R3	// QImode move
	R1=[R4++]	// RD=[RS] HFmode, RD!=RS
	R2=[R4--]
	R3=16384	// HFmode immediate to register move
	R4=17948
	push R3,R4 to [sp]	// pushhf
	push R1,R2 to [sp]	// pushhf
	call __mulf2	// call with return value
	SP = SP + 4	//SP
	push R1,R2 to [sp]	// pushhf
	call __cvf2i1	// call with return value
	SP = SP + 2	//SP
	R2=[bp+58]	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,142,',0,0
	.dd LM56-_main
	.dw 0x0d,0x0a
.code
LM56:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+20
	[bp+59]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+10
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=10000	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP = SP + 2	//SP
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP = SP + 2	//SP
	R2=[bp+59]	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,143,',0,0
	.dd LM57-_main
	.dw 0x0d,0x0a
.code
LM57:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+21
	[bp+60]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+10
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=1000	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP = SP + 2	//SP
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP = SP + 2	//SP
	R2=[bp+60]	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,144,',0,0
	.dd LM58-_main
	.dw 0x0d,0x0a
.code
LM58:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+22
	[bp+61]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+10
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=100	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP = SP + 2	//SP
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP = SP + 2	//SP
	R2=[bp+61]	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,145,',0,0
	.dd LM59-_main
	.dw 0x0d,0x0a
.code
LM59:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+23
	[bp+62]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+10
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __divi1	// call with return value
	SP = SP + 2	//SP
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP = SP + 2	//SP
	R2=[bp+62]	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,146,',0,0
	.dd LM60-_main
	.dw 0x0d,0x0a
.code
LM60:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R3=R2+24
	[bp+63]=R3	// QImode move
	R1=BP	// QImode move
	R2=BP+10
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	R2=10	// QImode move
	[SP--]=R2	// QImode move
	[SP--]=R1	// QImode move
	call __modi1	// call with return value
	SP = SP + 2	//SP
	R2=[bp+63]	// QImode move
	[R2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,147,',0,0
	.dd LM61-_main
	.dw 0x0d,0x0a
.code
LM61:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	R1=9	// QImode move
	[SP--]=R1	// QImode move
	call _Set_IOB_Bit	// call with return value
	SP = SP + 5	//SP
.debug
	.dw '.stabn 0x44,0,149,',0,0
	.dd LM62-_main
	.dw 0x0d,0x0a
.code
LM62:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _FG_ClearScreen	// call with return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,150,',0,0
	.dd LM63-_main
	.dw 0x0d,0x0a
.code
LM63:
	call _FG_InitGraphic	// call with return value
.debug
	.dw '.stabn 0x44,0,151,',0,0
	.dd LM64-_main
	.dw 0x0d,0x0a
.code
LM64:
	R1=3	// QImode move
	[SP--]=R1	// QImode move
	call _FG_SetLineStyle	// call with return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,152,',0,0
	.dd LM65-_main
	.dw 0x0d,0x0a
.code
LM65:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _FG_SetLineStyle	// call with return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,153,',0,0
	.dd LM66-_main
	.dw 0x0d,0x0a
.code
LM66:
	R1=29	// QImode move
	[SP--]=R1	// QImode move
	R1=30	// QImode move
	[SP--]=R1	// QImode move
	call _FG_PutPixel	// call with return value
	SP = SP + 2	//SP
.debug
	.dw '.stabn 0x44,0,154,',0,0
	.dd LM67-_main
	.dw 0x0d,0x0a
.code
LM67:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _FG_SetBMPMode	// call with return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,155,',0,0
	.dd LM68-_main
	.dw 0x0d,0x0a
.code
LM68:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _FG_ClearScreen	// call with return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,156,',0,0
	.dd LM69-_main
	.dw 0x0d,0x0a
.code
LM69:
	R1=64	// QImode move
	[SP--]=R1	// QImode move
	R1=127	// QImode move
	[SP--]=R1	// QImode move
	R1=_dance8	// QImode move
	[SP--]=R1	// QImode move
	call _FG_PutBitmap	// call with return value
	SP = SP + 3	//SP
.debug
	.dw '.stabn 0x44,0,157,',0,0
	.dd LM70-_main
	.dw 0x0d,0x0a
.code
LM70:
	R1=3	// QImode move
	[SP--]=R1	// QImode move
	call _FG_SetLineStyle	// call with return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,159,',0,0
	.dd LM71-_main
	.dw 0x0d,0x0a
.code
LM71:
	R1=BP	// QImode move
	R2=BP+15
	R1=R2	// QImode move
	R2=R2+20
	R4=R2	// QImode move
	R3=[R4]	// QImode move
	R1=R3	// QImode move
	CMP R1,3	// QImode compare
	NSJA L29	//QImode GTU

⌨️ 快捷键说明

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