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

📄 main.asm

📁 凌阳61单片机实现的多功能电子琴源程序代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	R2=[BP]	// QImode move
	R1=R2|16
	[SP--]=R1	// QImode move
	call _send_cmd	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,272,',0,0
	.dd LM175-_set_colume_address
	.dw 0x0d,0x0a
.code
LM175:
	R1=[bp+1]	// QImode move
	R1=[R1]	// QImode move
	R1=R1&15
	[BP]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,273,',0,0
	.dd LM176-_set_colume_address
	.dw 0x0d,0x0a
.code
LM176:
	R1=[BP]	// QImode move
	[SP--]=R1	// QImode move
	call _send_cmd	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,274,',0,0
	.dd LM177-_set_colume_address
	.dw 0x0d,0x0a
.code
LM177:
LBE7:
.debug
	.dw '.stabn 0x44,0,274,',0,0
	.dd LM178-_set_colume_address
	.dw 0x0d,0x0a
.code
LM178:
L157:

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

.debug
	.dw '.stabs "dat:p11",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB7-_set_colume_address
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "tmp:11",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE7-_set_colume_address
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME7-_set_colume_address
	.dw 0x0d,0x0a
.code
LME7:
.code
.debug
	.dw '.stabs "Clear_S:F19",36,0,0,',0,0,offset _Clear_S,seg _Clear_S,0x0d,0x0a
.CODE
.public _Clear_S
_Clear_S:	.proc
.debug
	.dw '.stabn 0x44,0,277,',0,0
	.dd LM179-_Clear_S
	.dw 0x0d,0x0a
.code
LM179:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
	[bp+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,278,',0,0
	.dd LM180-_Clear_S
	.dw 0x0d,0x0a
.code
LM180:
LBB8:
.debug
	.dw '.stabn 0x44,0,279,',0,0
	.dd LM181-_Clear_S
	.dw 0x0d,0x0a
.code
LM181:
	R1=0	// QImode move
	[BP]=R1	// QImode move
L159:
	R1=[BP]	// QImode move
	CMP R1,7	// QImode compare
	NSJNA L162	//QImode LEU
	pc=L160	// Indirect jump
L162:
.debug
	.dw '.stabn 0x44,0,281,',0,0
	.dd LM182-_Clear_S
	.dw 0x0d,0x0a
.code
LM182:
	R1=[BP]	// QImode move
	[SP--]=R1	// QImode move
	call _set_page_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,282,',0,0
	.dd LM183-_Clear_S
	.dw 0x0d,0x0a
.code
LM183:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _set_colume_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM184-_Clear_S
	.dw 0x0d,0x0a
.code
LM184:
	R1=BP	// QImode move
	R2=BP+1
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
L163:
	R1=BP	// QImode move
	R2=BP+1
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	CMP R1,131	// QImode compare
	NSJNA L166	//QImode LEU
	pc=L161	// Indirect jump
L166:
.debug
	.dw '.stabn 0x44,0,285,',0,0
	.dd LM185-_Clear_S
	.dw 0x0d,0x0a
.code
LM185:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _send_dat	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,283,',0,0
	.dd LM186-_Clear_S
	.dw 0x0d,0x0a
.code
LM186:
L165:
	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
	pc=L163	// Indirect jump
L164:
.debug
	.dw '.stabn 0x44,0,279,',0,0
	.dd LM187-_Clear_S
	.dw 0x0d,0x0a
.code
LM187:
L161:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
	pc=L159	// Indirect jump
L160:
.debug
	.dw '.stabn 0x44,0,288,',0,0
	.dd LM188-_Clear_S
	.dw 0x0d,0x0a
.code
LM188:
LBE8:
.debug
	.dw '.stabn 0x44,0,288,',0,0
	.dd LM189-_Clear_S
	.dw 0x0d,0x0a
.code
LM189:
L158:

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

.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB8-_Clear_S
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "i:11",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "j:11",128,0,0,1',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE8-_Clear_S
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME8-_Clear_S
	.dw 0x0d,0x0a
.code
LME8:
.code
.debug
	.dw '.stabs "display_cha:F19",36,0,0,',0,0,offset _display_cha,seg _display_cha,0x0d,0x0a
.CODE
.public _display_cha
_display_cha:	.proc
.debug
	.dw '.stabn 0x44,0,293,',0,0
	.dd LM190-_display_cha
	.dw 0x0d,0x0a
.code
LM190:
	// 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,294,',0,0
	.dd LM191-_display_cha
	.dw 0x0d,0x0a
.code
LM191:
LBB9:
.debug
	.dw '.stabn 0x44,0,295,',0,0
	.dd LM192-_display_cha
	.dw 0x0d,0x0a
.code
LM192:
	R1=[bp+1]	// QImode move
	R3=[bp+1]	// QImode move
	R2=R3+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _set_page_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,296,',0,0
	.dd LM193-_display_cha
	.dw 0x0d,0x0a
.code
LM193:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _set_colume_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,297,',0,0
	.dd LM194-_display_cha
	.dw 0x0d,0x0a
.code
LM194:
	R1=0	// QImode move
	[BP]=R1	// QImode move
L170:
	R1=[BP]	// QImode move
	CMP R1,15	// QImode compare
	NSJNG L173	//QImode LE
	pc=L171	// Indirect jump
L173:
.debug
	.dw '.stabn 0x44,0,299,',0,0
	.dd LM195-_display_cha
	.dw 0x0d,0x0a
.code
LM195:
	R1=[bp+1]	// QImode move
	R2=[R1]	// QImode move
	R1=R2	// QImode move
	R1 = R1 + [BP]	//addqi3
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	[SP--]=R2	// QImode move
	call _send_dat	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,297,',0,0
	.dd LM196-_display_cha
	.dw 0x0d,0x0a
.code
LM196:
L172:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
	pc=L170	// Indirect jump
L171:
.debug
	.dw '.stabn 0x44,0,301,',0,0
	.dd LM197-_display_cha
	.dw 0x0d,0x0a
.code
LM197:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+1
	R1=R2	// QImode move
	R3=[R1]	// QImode move
	R1=R3+1
	[SP--]=R1	// QImode move
	call _set_page_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,302,',0,0
	.dd LM198-_display_cha
	.dw 0x0d,0x0a
.code
LM198:
	R1=[bp+1]	// QImode move
	R3=[bp+1]	// QImode move
	R2=R3+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _set_colume_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,303,',0,0
	.dd LM199-_display_cha
	.dw 0x0d,0x0a
.code
LM199:
	R1=0	// QImode move
	[BP]=R1	// QImode move
L174:
	R1=[BP]	// QImode move
	CMP R1,15	// QImode compare
	NSJNG L177	//QImode LE
	pc=L175	// Indirect jump
L177:
.debug
	.dw '.stabn 0x44,0,305,',0,0
	.dd LM200-_display_cha
	.dw 0x0d,0x0a
.code
LM200:
	R2=[BP]	// QImode move
	R1=R2	// QImode move
	R2=[bp+1]	// QImode move
	R1 = R1 + [R2]	//addqi3
	R2=R1+16
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _send_dat	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,303,',0,0
	.dd LM201-_display_cha
	.dw 0x0d,0x0a
.code
LM201:
L176:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
	pc=L174	// Indirect jump
L175:
.debug
	.dw '.stabn 0x44,0,307,',0,0
	.dd LM202-_display_cha
	.dw 0x0d,0x0a
.code
LM202:
LBE9:
.debug
	.dw '.stabn 0x44,0,307,',0,0
	.dd LM203-_display_cha
	.dw 0x0d,0x0a
.code
LM203:
L169:

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

.debug
	.dw '.stabs "cha:p56",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "page:p1",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "colume:p1",160,0,0,7',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB9-_display_cha
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "j:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE9-_display_cha
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME9-_display_cha
	.dw 0x0d,0x0a
.code
LME9:
.code
.debug
	.dw '.stabs "display_note:F19",36,0,0,',0,0,offset _display_note,seg _display_note,0x0d,0x0a
.CODE
.public _display_note
_display_note:	.proc
.debug
	.dw '.stabn 0x44,0,310,',0,0
	.dd LM204-_display_note
	.dw 0x0d,0x0a
.code
LM204:
	// 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,311,',0,0
	.dd LM205-_display_note
	.dw 0x0d,0x0a
.code
LM205:
LBB10:
.debug
	.dw '.stabn 0x44,0,312,',0,0
	.dd LM206-_display_note
	.dw 0x0d,0x0a
.code
LM206:
	R1=[bp+1]	// QImode move
	R3=[bp+1]	// QImode move
	R2=R3+1
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _set_page_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,313,',0,0
	.dd LM207-_display_note
	.dw 0x0d,0x0a
.code
LM207:
	R1=[bp+1]	// QImode move
	R1=[bp+1]	// QImode move
	R2=R1+2
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _set_colume_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,314,',0,0
	.dd LM208-_display_note
	.dw 0x0d,0x0a
.code
LM208:
	R1=0	// QImode move
	[BP]=R1	// QImode move
L181:
	R1=[BP]	// QImode move
	CMP R1,7	// QImode compare
	NSJNG L184	//QImode LE
	pc=L182	// Indirect jump
L184:
.debug
	.dw '.stabn 0x44,0,316,',0,0
	.dd LM209-_display_note
	.dw 0x0d,0x0a
.code
LM209:
	R1=[bp+1]	// QImode move
	R2=[R1]	// QImode move
	R1=R2	// QImode move
	R1 = R1 + [BP]	//addqi3
	R3=R1	// QImode move
	R2=[R3]	// QImode move
	[SP--]=R2	// QImode move
	call _send_dat	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,314,',0,0
	.dd LM210-_display_note
	.dw 0x0d,0x0a
.code
LM210:
L183:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
	pc=L181	// Indirect jump
L182:
.debug
	.dw '.stabn 0x44,0,318,',0,0
	.dd LM211-_display_note
	.dw 0x0d,0x0a
.code
LM211:
LBE10:
.debug
	.dw '.stabn 0x44,0,318,',0,0
	.dd LM212-_display_note
	.dw 0x0d,0x0a
.code
LM212:
L180:

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

.debug
	.dw '.stabs "note:p56",160,0,0,5',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "page:p1",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "colume:p1",160,0,0,7',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB10-_display_note
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "j:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE10-_display_note
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME10-_display_note
	.dw 0x0d,0x0a
.code
LME10:
.code
.debug
	.dw '.stabs "display_pic:F19",36,0,0,',0,0,offset _display_pic,seg _display_pic,0x0d,0x0a
.CODE
.public _display_pic
_display_pic:	.proc
.debug
	.dw '.stabn 0x44,0,321,',0,0
	.dd LM213-_display_pic
	.dw 0x0d,0x0a
.code
LM213:
	// total=3, vars=3
	// frame_pointer_needed: 1
	push bp to [sp]
	sp-=3
	bp=sp+1

	R1=BP+6
	[bp+2]=R1	// QImode move
.debug
	.dw '.stabn 0x44,0,322,',0,0
	.dd LM214-_display_pic
	.dw 0x0d,0x0a
.code
LM214:
LBB11:
.debug
	.dw '.stabn 0x44,0,323,',0,0
	.dd LM215-_display_pic
	.dw 0x0d,0x0a
.code
LM215:
	R1=1	// QImode move
	[SP--]=R1	// QImode move
	call _set_page_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,324,',0,0
	.dd LM216-_display_pic
	.dw 0x0d,0x0a
.code
LM216:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _set_colume_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,325,',0,0
	.dd LM217-_display_pic
	.dw 0x0d,0x0a
.code
LM217:
	R1=1	// QImode move
	[BP]=R1	// QImode move
L187:
	R1=[BP]	// QImode move
	CMP R1,6	// QImode compare
	NSJNG L190	//QImode LE
	pc=L188	// Indirect jump
L190:
.debug
	.dw '.stabn 0x44,0,327,',0,0
	.dd LM218-_display_pic
	.dw 0x0d,0x0a
.code
LM218:
	R1=BP	// QImode move
	R2=BP+1
	R1=0	// QImode move
	R3=R2	// QImode move
	[R3]=R1	// QImode move
L191:
	R1=BP	// QImode move
	R2=BP+1
	R4=R2	// QImode move
	R1=[R4]	// QImode move
	CMP R1,127	// QImode compare
	NSJNG L194	//QImode LE
	pc=L192	// Indirect jump
L194:
.debug
	.dw '.stabn 0x44,0,329,',0,0
	.dd LM219-_display_pic
	.dw 0x0d,0x0a
.code
LM219:
	R1=[BP]	// QImode move
	R2=128	// QImode move
	mr=R1*R2	// r3=R1*R2 16bit=16bit*16bit
	R1=R3	// QImode move
	R2=[bp+2]	// QImode move
	R1 = R1 + [R2]	//addqi3
	R2=BP	// QImode move
	R3=BP+1
	R4=R3	// QImode move
	R2=[R4]	// QImode move
	R1 = R1 + R2	//addqi3
	R2=R1+(-128)
	R3=R2	// QImode move
	R1=[R3]	// QImode move
	[SP--]=R1	// QImode move
	call _send_dat	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,327,',0,0
	.dd LM220-_display_pic
	.dw 0x0d,0x0a
.code
LM220:
L193:
	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
	pc=L191	// Indirect jump
L192:
.debug
	.dw '.stabn 0x44,0,331,',0,0
	.dd LM221-_display_pic
	.dw 0x0d,0x0a
.code
LM221:
	R2=[BP]	// QImode move
	R1=R2+1
	[SP--]=R1	// QImode move
	call _set_page_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,332,',0,0
	.dd LM222-_display_pic
	.dw 0x0d,0x0a
.code
LM222:
	R1=0	// QImode move
	[SP--]=R1	// QImode move
	call _set_colume_address	// call without return value
	SP = SP + 1	//SP
.debug
	.dw '.stabn 0x44,0,325,',0,0
	.dd LM223-_display_pic
	.dw 0x0d,0x0a
.code
LM223:
L189:
	R1=[BP]	// QImode move
	R2=R1+1
	[BP]=R2	// QImode move
	pc=L187	// Indirect jump
L188:
.debug
	.dw '.stabn 0x44,0,334,',0,0
	.dd LM224-_display_pic
	.dw 0x0d,0x0a
.code
LM224:
LBE11:
.debug
	.dw '.stabn 0x44,0,334,',0,0
	.dd LM225-_display_pic
	.dw 0x0d,0x0a
.code
LM225:
L186:

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

.debug
	.dw '.stabs "pic:p56",160,0,0,6',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xc0,0,0,',0,0
	.dd LBB11-_display_pic
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabs "i:1",128,0,0,0',0x0d,0x0a
.CODE
.debug
	.dw '.stabs "j:1",128,0,0,1',0x0d,0x0a
.CODE
.debug
	.dw '.stabn 0xe0,0,0,',0,0
	.dd LBE11-_display_pic
	.dw 0x0d,0x0a
.code
.debug
	.dw '.stabf ',0,0
	.dd LME11-_display_pic
	.dw 0x0d,0x0a
.code
LME11:
.code
.debug
	.dw '.stabs "display_mode_0:F19",36,0,0,',0,0,offset _display_mode_0,seg _display_mode_0,0x0d,0x0a
.CODE
.public _display_mode_0
_display_mode_0:	.proc
.debug
	.dw '.stabn 0x44,0,339,',0,0
	.dd LM226-_display_mode_0
	.dw 0x0d,0x0a
.code
LM2

⌨️ 快捷键说明

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