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

📄 sio.asm

📁 日立单片机H8S2144例程.包括AD,DA等程序(用于光源)但对于H8S2144使用者来说有很大的帮助.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_peerr_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??ENDBLOCK(491)
?00026:
??ENDBLOCK(492)
??CLINE 492
_rxerr_job_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_IntTXI0
_IntTXI0:
	STM.L	ER0-ER3,@-SP
	STM.L	ER4-ER6,@-SP
                                                                      
??FUNCDEF(???IntTXI0) ??VOID
??FUNCEND
??BEGINBLOCK(509)
??CLINE 510
	XOR.W	R0,R0
	PUSH.W	R0
	JSR	@_inttx_job
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(511)
??CLINE 511
_IntTXI0_end:

	LDM.L	@SP+,ER4-ER6
	LDM.L	@SP+,ER0-ER3
	RTE

	segment	TEXT ATR_CODE
public	_IntTXI1
_IntTXI1:
	STM.L	ER0-ER3,@-SP
	STM.L	ER4-ER6,@-SP
                                                                      
??FUNCDEF(???IntTXI1) ??VOID
??FUNCEND
??BEGINBLOCK(524)
??CLINE 525
	MOV.W	#H'0001,R0
	PUSH.W	R0
	JSR	@_inttx_job
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(526)
??CLINE 526
_IntTXI1_end:

	LDM.L	@SP+,ER4-ER6
	LDM.L	@SP+,ER0-ER3
	RTE

	segment	TEXT ATR_CODE
public	_IntTXI2
_IntTXI2:
	STM.L	ER0-ER3,@-SP
	STM.L	ER4-ER6,@-SP
                                                                      
??FUNCDEF(???IntTXI2) ??VOID
??FUNCEND
??BEGINBLOCK(539)
??CLINE 540
	MOV.W	#H'0002,R0
	PUSH.W	R0
	JSR	@_inttx_job
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(541)
??CLINE 541
_IntTXI2_end:

	LDM.L	@SP+,ER4-ER6
	LDM.L	@SP+,ER0-ER3
	RTE

	segment	TEXT ATR_CODE
public	_inttx_job
_inttx_job:
	PUSH.L	ER6
	MOV.L	ER7,ER6
	SUBS	#2,ER7
                           
??FUNCDEF(???inttx_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(554)
??VAR ??UCHAR ??SYMBOL(???ichr) ??OFFSET(-1)
??CLINE 557
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0400,R0
	BNE	?00027:8
??BEGINBLOCK(558)
??CLINE 559
	XOR.W	R0,R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_inttx
	ADDS.L	#H'00000004,ER7
??ENDBLOCK(560)
?00027:
??CLINE 562
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	#H'00000002,ER0
	MOV.L	#_ssr,ER1
	ADD.L	ER0,ER1
	MOV.L	@ER1,ER0
	MOV.B	@ER0,R0L
	EXTU.W	R0
	AND.W	#H'0080,R0
	OR.W	R0,R0
	BEQ	?00028
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0400,R0
	BCC	?00028
??BEGINBLOCK(563)
??CLINE 564
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	MOV.L	ER0,ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_rp,ER2
	ADD.L	ER1,ER2
	MOV.W	@ER2,R1
	EXTU.L	ER1
	MOV.L	ER0,ER2
	MOV.L	#H'00000400,ER3
	PUSH.L	ER2
	PUSH.L	ER3
	JSR	@__l_mul
	ADDS.L	#H'00000004,ER7
	POP.L	ER2
	MOV.L	#_rs_send_buf,ER4
	ADD.L	ER2,ER4
	ADD.L	ER1,ER4
	MOV.B	@ER4,R1L
	SHLL.L	#H'00000002,ER0
	MOV.L	#_tdr,ER2
	ADD.L	ER0,ER2
	MOV.L	@ER2,ER0
	MOV.B	R1L,@ER0
??CLINE 565
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	#H'00000002,ER0
	MOV.L	#_ssr,ER1
	ADD.L	ER0,ER1
	MOV.L	@ER1,ER0
	MOV.B	@ER0,R1L
	AND.B	#H'7F,R1L
	MOV.B	R1L,@ER0
??CLINE 566
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_rp,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??CLINE 567
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_rp,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	AND.W	#H'03FF,R0
	MOV.W	R0,@ER1
??CLINE 568
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??CLINE 570
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0400,R0
	BNE	?00029:8
??BEGINBLOCK(571)
??CLINE 572
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00030:8
??BEGINBLOCK(572)
??ENDBLOCK(574)
?00030:
??ENDBLOCK(575)
?00029:
??ENDBLOCK(578)
?00028:
??ENDBLOCK(579)
??CLINE 579
_inttx_job_end:

	MOV.L	ER6,ER7
	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_tx_job
_tx_job:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???tx_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(592)
?00031:
??CLINE 593
??BEGINBLOCK(594)
??CLINE 596
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	#H'00000002,ER0
	MOV.L	#_ssr,ER1
	ADD.L	ER0,ER1
	MOV.L	@ER1,ER0
	MOV.B	@ER0,R0L
	EXTU.W	R0
	AND.W	#H'0080,R0
	OR.W	R0,R0
	BEQ	?00033
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0400,R0
	BCC	?00033
??BEGINBLOCK(597)
??CLINE 598
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	MOV.L	ER0,ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_rp,ER2
	ADD.L	ER1,ER2
	MOV.W	@ER2,R1
	EXTU.L	ER1
	MOV.L	ER0,ER2
	MOV.L	#H'00000400,ER3
	PUSH.L	ER2
	PUSH.L	ER3
	JSR	@__l_mul
	ADDS.L	#H'00000004,ER7
	POP.L	ER2
	MOV.L	#_rs_send_buf,ER4
	ADD.L	ER2,ER4
	ADD.L	ER1,ER4
	MOV.B	@ER4,R1L
	SHLL.L	#H'00000002,ER0
	MOV.L	#_tdr,ER2
	ADD.L	ER0,ER2
	MOV.L	@ER2,ER0
	MOV.B	R1L,@ER0
??CLINE 599
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	#H'00000002,ER0
	MOV.L	#_ssr,ER1
	ADD.L	ER0,ER1
	MOV.L	@ER1,ER0
	MOV.B	@ER0,R1L
	AND.B	#H'7F,R1L
	MOV.B	R1L,@ER0
??CLINE 600
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_rp,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??CLINE 601
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_rp,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	AND.W	#H'03FF,R0
	MOV.W	R0,@ER1
??CLINE 602
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??ENDBLOCK(603)
	BRA	?00034:8
?00033:
??BEGINBLOCK(605)
??CLINE 606
	BRA	?00032:8
??ENDBLOCK(607)
?00034:
??ENDBLOCK(608)
	JMP	@?00031
?00032:
??ENDBLOCK(609)
??CLINE 609
_tx_job_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_inttx
_rs_inttx:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_inttx) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??SINT ??SYMBOL(???on) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(621)
??CLINE 622
	MOV.W	@(+10,ER6),R0
	CMP.W	#H'0001,R0
	BNE	?00035:8
??BEGINBLOCK(623)
??CLINE 624
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	#H'00000002,ER0
	MOV.L	#_scr,ER1
	ADD.L	ER0,ER1
	MOV.L	@ER1,ER0
	MOV.B	@ER0,R1L
	OR.B	#H'80,R1L
	MOV.B	R1L,@ER0
??ENDBLOCK(625)
	BRA	?00036:8
?00035:
??BEGINBLOCK(627)
??CLINE 628
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	#H'00000002,ER0
	MOV.L	#_scr,ER1
	ADD.L	ER0,ER1
	MOV.L	@ER1,ER0
	MOV.B	@ER0,R1L
	AND.B	#H'7F,R1L
	MOV.B	R1L,@ER0
??ENDBLOCK(629)
?00036:
??ENDBLOCK(630)
??CLINE 630
_rs_inttx_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_txcont_job
_rs_txcont_job:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_txcont_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(642)
??CLINE 643
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	CMP.W	#H'0400,R0
	BCC	?00037:8
??BEGINBLOCK(644)
??CLINE 651
	MOV.W	#H'0001,R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_inttx
	ADDS.L	#H'00000004,ER7
??ENDBLOCK(653)
?00037:
??ENDBLOCK(654)
??CLINE 654
_rs_txcont_job_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_putcheck
_rs_putcheck:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_putcheck) ??UINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(666)
??CLINE 667
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
??ENDBLOCK(668)
??CLINE 668
_rs_putcheck_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_txbufempty
_rs_txbufempty:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_txbufempty) ??UINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(671)
??CLINE 672
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	MOV.W	#H'0400,R1
	SUB.W	R0,R1
	MOV.W	R1,R0
??ENDBLOCK(673)
??CLINE 673
_rs_txbufempty_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_putc
_rs_putc:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rs_putc) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??UCHAR ??SYMBOL(???data) ??OFFSET(11)
??FUNCEND
??BEGINBLOCK(684)
??CLINE 685
	MOV.W	#H'0001,R0
	PUSH.W	R0
	MOV.L	ER6,ER1
	ADD.L	#H'0000000B,ER1
	PUSH.L	ER1
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_putn
	ADDS.L	#H'00000004,ER7
	ADDS.L	#H'00000004,ER7
??ENDBLOCK(686)
??CLINE 686
_rs_putc_end:

	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_puts
_rs_puts:
	PUSH.L	ER6
	MOV.L	ER7,ER6
	SUBS	#4,ER7
                           
??FUNCDEF(???rs_puts) ??SINT
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??POINTER ??UCHAR ??SYMBOL(???data) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(699)
??VAR ??UINT ??SYMBOL(???c) ??OFFSET(-2)
??VAR ??UINT ??SYMBOL(???size) ??OFFSET(-4)
??CLINE 703
	MOV.L	@(+10,ER6),ER0
	PUSH.L	ER0
	JSR	@_strlen
	ADDS.L	#H'00000004,ER7
	MOV.W	R0,@(-4,ER6)
??CLINE 704
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_c,ER2
	ADD.L	ER1,ER2
	MOV.W	@ER2,R1
	MOV.W	R0,R2
	ADDS.L	#H'00000001,ER2
	CMP.W	R1,R2
	BHI	?00039:8
	MOV.W	@(-4,ER6),R0
	OR.W	R0,R0
	BNE	?00038:8
?00039:
??BEGINBLOCK(705)
??CLINE 706
	XOR.W	R0,R0
	JMP	@_rs_puts_end
??ENDBLOCK(707)
?00038:
??CLINE 709
	XOR.W	R0,R0
	MOV.W	R0,@(-2,ER6)
	BRA	?00041:8
?00040:
	MOV.W	@(-2,ER6),R0
	INC.W	#H'0001,R0
	MOV.W	R0,@(-2,ER6)
?00041:
	MOV.W	@(-2,ER6),R0
	MOV.W	@(-4,ER6),R1
	CMP.W	R1,R0
	BCC	?00042
??BEGINBLOCK(710)
??CLINE 711
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	MOV.L	ER0,ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_wp,ER2
	ADD.L	ER1,ER2
	MOV.W	@ER2,R1
	EXTU.L	ER1
	MOV.L	#H'00000400,ER2
	PUSH.L	ER0
	PUSH.L	ER2
	JSR	@__l_mul
	ADDS.L	#H'00000004,ER7
	POP.L	ER0
	MOV.L	#_rs_send_buf,ER3
	ADD.L	ER0,ER3
	ADD.L	ER1,ER3
	MOV.L	@(+10,ER6),ER0
	MOV.B	@ER0,R1L
	MOV.B	R1L,@ER3
??CLINE 712
	MOV.L	@(+10,ER6),ER0
	INC.L	#H'00000001,ER0
	MOV.L	ER0,@(+10,ER6)
??CLINE 713
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_wp,ER3
	ADD.L	ER1,ER3
	MOV.W	@ER3,R1
	INC.W	#H'0001,R1
	MOV.W	R1,@ER3
??CLINE 714
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_wp,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	AND.W	#H'03FF,R0
	MOV.W	R0,@ER1
??CLINE 715
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	DEC.W	#H'0001,R0
	MOV.W	R0,@ER1
??ENDBLOCK(716)
	JMP	@?00040
?00042:
??CLINE 717
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	MOV.L	ER0,ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_wp,ER2
	ADD.L	ER1,ER2
	MOV.W	@ER2,R1
	EXTU.L	ER1
	MOV.L	#H'00000400,ER2
	PUSH.L	ER0
	PUSH.L	ER2
	JSR	@__l_mul
	ADDS.L	#H'00000004,ER7
	POP.L	ER0
	MOV.L	#_rs_send_buf,ER3
	ADD.L	ER0,ER3
	ADD.L	ER1,ER3
	MOV.B	#H'0A,R0L
	MOV.B	R0L,@ER3
??CLINE 718
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_wp,ER3
	ADD.L	ER1,ER3
	MOV.W	@ER3,R1
	INC.W	#H'0001,R1
	MOV.W	R1,@ER3
??CLINE 719
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_wp,ER3
	ADD.L	ER1,ER3
	MOV.W	@ER3,R1
	AND.W	#H'03FF,R1
	MOV.W	R1,@ER3
??CLINE 720
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_c,ER3
	ADD.L	ER1,ER3
	MOV.W	@ER3,R1
	DEC.W	#H'0001,R1
	MOV.W	R1,@ER3
??CLINE 722
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_txcont_job
	ADDS.L	#H'00000002,ER7
??CLINE 724
	MOV.W	#H'0001,R0
??ENDBLOCK(725)
??CLINE 725
_rs_puts_end:

	MOV.L	ER6,ER7
	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_putn
_rs_putn:
	PUSH.L	ER6
	MOV.L	ER7,ER6
	SUBS	#2,ER7
                           
??FUNCDEF(???rs_putn) ??SINT

⌨️ 快捷键说明

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