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

📄 sio.asm

📁 日立单片机H8S2144例程.包括AD,DA等程序(用于光源)但对于H8S2144使用者来说有很大的帮助.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (H8S2144.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (global.h)
??CFILE ($$string.h)
??CFILE ($$stddef.h)
??CFILE ($$string.h)
??CFILE (global.h)
??CFILE ($$stdio.h)
??CFILE ($$stdarg.h)
??CFILE ($$stdio.h)
??STRUCTDEF(???_iobuf,1,5,8)
??VAR ??UINT ??SYMBOL(???flag) ??OFFSET(0)
??VAR ??UINT ??SYMBOL(???fd) ??OFFSET(2)
??VAR ??SINT ??SYMBOL(???hold) ??OFFSET(4)
??VAR ??UCHAR ??SYMBOL(???use) ??OFFSET(6)
??VAR ??UCHAR ??SYMBOL(???state) ??OFFSET(7)
??STRUCTEND
??STRUCTDEF(???_iobtmp,2,2,10)
??VAR ??SCHAR ??SYMBOL(???use) ??OFFSET(0)
??VAR ??STRUCT(???_iobuf,1) ??SYMBOL(???file) ??OFFSET(2)
??STRUCTEND
??CFILE (global.h)
??CFILE ($$stdlib.h)
??STRUCTDEF(???div_t,3,2,4)
??VAR ??SINT ??SYMBOL(???quot) ??OFFSET(0)
??VAR ??SINT ??SYMBOL(???rem) ??OFFSET(2)
??STRUCTEND
??STRUCTDEF(???ldiv_t,4,2,8)
??VAR ??SLONG ??SYMBOL(???quot) ??OFFSET(0)
??VAR ??SLONG ??SYMBOL(???rem) ??OFFSET(4)
??STRUCTEND
??CFILE (global.h)
??CFILE ($$math.h)
??CFILE (global.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (extern.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
??CFILE (data.h)
??CFILE (C:\H8S\LTMeas\LTDriver\Sio.c)
	segment	TEXT ATR_CODE
public	_sci_bps
_sci_bps:
	PUSH.L	ER6
	MOV.L	ER7,ER6
	SUBS	#2,ER7
                           
??FUNCDEF(???sci_bps) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??SLONG ??SYMBOL(???bps) ??OFFSET(10)
??FUNCEND
??BEGINBLOCK(171)
??VAR ??UCHAR ??SYMBOL(???br) ??OFFSET(-1)
??VAR ??UCHAR ??SYMBOL(???ck) ??OFFSET(-2)
??CLINE 175
	MOV.L	@(+10,ER6),ER0
	MOV.W	#9,R1
	MOV.L	#?00001,ER2
?00096:
	OR.W	R1,R1
	BEQ	?00098:8
	MOV.L	@ER2+,ER3
	CMP.L	ER3,ER0
	BNE	?00097:8
	MOV.L	@ER2,ER3
	JMP	@ER3
?00097:
	ADDS	#4,ER2
	DEC.W	#1,R1
	BRA	?00096:8
?00098:
	MOV.L	@ER2,ER3
	JMP	@ER3

??BEGINBLOCK(176)
?00004:
??CLINE 178
	MOV.B	#H'7F,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 179
	MOV.B	#H'02,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 180
	JMP	@?00002
?00005:
??CLINE 182
	MOV.B	#H'7F,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 183
	MOV.B	#H'01,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 184
	JMP	@?00002
?00006:
??CLINE 186
	MOV.B	#H'FF,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 187
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 188
	JMP	@?00002
?00007:
??CLINE 190
	MOV.B	#H'7F,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 191
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 192
	JMP	@?00002
?00008:
??CLINE 194
	MOV.B	#H'3F,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 195
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 196
	JMP	@?00002
?00009:
??CLINE 198
	MOV.B	#H'1F,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 199
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 200
	JMP	@?00002
?00010:
??CLINE 202
	MOV.B	#H'0F,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 203
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 204
	BRA	?00002:8
?00011:
??CLINE 206
	MOV.B	#H'09,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 207
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 208
	BRA	?00002:8
?00012:
??CLINE 210
	MOV.B	#H'04,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 211
	XOR.B	R1L,R1L
	MOV.B	R1L,@(-2,ER6)
??CLINE 212
	BRA	?00002:8
?00003:
??CLINE 214
	JMP	@_sci_bps_end
??ENDBLOCK(215)
??CLINE 215
	BRA	?00002:8
?00001:
	DC.L	H'0000012C,?00004
	DC.L	H'000004B0,?00005
	DC.L	H'00000960,?00006
	DC.L	H'000012C0,?00007
	DC.L	H'00002580,?00008
	DC.L	H'00004B00,?00009
	DC.L	H'00009600,?00010
	DC.L	H'0000E100,?00011
	DC.L	H'0001C200,?00012
	DC.L	?00003
?00002:
??CLINE 217
	MOV.B	@(-2,ER6),R0L
	EXTU.W	R0
	PUSH.W	R0
	MOV.B	@(-1,ER6),R0L
	EXTU.W	R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R0
	PUSH.W	R0
	JSR	@_sci_init
	ADDS.L	#H'00000002,ER7
	ADDS.L	#H'00000004,ER7
??CLINE 218
	MOV.W	#H'0001,R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_rs_cmd
	ADDS.L	#H'00000004,ER7
??CLINE 219
	XOR.W	R0,R0
	PUSH.W	R0
	MOV.W	@(+8,ER6),R1
	PUSH.W	R1
	JSR	@_rs_er_cmd
	ADDS.L	#H'00000004,ER7
??CLINE 220
	MOV.W	@(+8,ER6),R0
	PUSH.W	R0
	JSR	@_rs_pointer_init
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(221)
??CLINE 221
_sci_bps_end:

	MOV.L	ER6,ER7
	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_sci_init
_sci_init:
	PUSH.L	ER6
	MOV.L	ER7,ER6
	SUBS	#2,ER7
                           
??FUNCDEF(???sci_init) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??VAR ??UCHAR ??SYMBOL(???br) ??OFFSET(11)
??VAR ??UCHAR ??SYMBOL(???cksel) ??OFFSET(13)
??FUNCEND
??BEGINBLOCK(242)
??VAR ??UCHAR ??SYMBOL(???wk) ??OFFSET(-1)
??CLINE 245
	MOV.W	@(+8,ER6),R0
	OR.W	R0,R0
	BNE	?00013
??BEGINBLOCK(246)
??CLINE 250
	MOV.B	@H'00FFFFDD:8,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 251
	MOV.B	R0L,@(-1,ER6)
??CLINE 252
	MOV.B	R0L,@(-1,ER6)
??CLINE 254
	MOV.B	@(+11,ER6),R1L
	MOV.L	#H'00FFFFD9,ER2
	MOV.B	R1L,@ER2
??CLINE 256
	MOV.L	#_str00000,ER0
	PUSH.L	ER0
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFFD8,ER1
	MOV.B	R0L,@ER1
??CLINE 266
	MOV.B	@(+13,ER6),R0L
	EXTU.W	R0
	MOV.B	@H'00FFFFD8:8,R2L
	EXTU.W	R2
	OR.W	R0,R2
	MOV.B	R2L,@ER1
??CLINE 268
	MOV.B	@H'00FFFFDC:8,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 269
	MOV.L	#_str00001,ER2
	PUSH.L	ER2
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFFDC,ER1
	MOV.B	R0L,@ER1
??CLINE 281
	MOV.L	#_str00002,ER0
	PUSH.L	ER0
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFFDA,ER1
	MOV.B	R0L,@ER1
??ENDBLOCK(294)
	JMP	@?00014
?00013:
??CLINE 295
	MOV.W	@(+8,ER6),R0
	CMP.W	#H'0001,R0
	BNE	?00015
??BEGINBLOCK(296)
??CLINE 301
	MOV.B	@H'00FFFF8D:8,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 302
	MOV.B	R0L,@(-1,ER6)
??CLINE 303
	MOV.B	R0L,@(-1,ER6)
??CLINE 305
	MOV.B	@(+11,ER6),R1L
	MOV.L	#H'00FFFF89,ER2
	MOV.B	R1L,@ER2
??CLINE 307
	MOV.L	#_str00003,ER0
	PUSH.L	ER0
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFF88,ER1
	MOV.B	R0L,@ER1
??CLINE 317
	MOV.B	@(+13,ER6),R0L
	EXTU.W	R0
	MOV.B	@H'00FFFF88:8,R2L
	EXTU.W	R2
	OR.W	R0,R2
	MOV.B	R2L,@ER1
??CLINE 319
	MOV.B	@H'00FFFF8C:8,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 320
	MOV.L	#_str00001,ER2
	PUSH.L	ER2
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFF8C,ER1
	MOV.B	R0L,@ER1
??CLINE 331
	MOV.L	#_str00002,ER0
	PUSH.L	ER0
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFF8A,ER1
	MOV.B	R0L,@ER1
??ENDBLOCK(341)
	JMP	@?00016
?00015:
??CLINE 342
	MOV.W	@(+8,ER6),R0
	CMP.W	#H'0002,R0
	BNE	?00017
??BEGINBLOCK(343)
??CLINE 348
	MOV.B	@H'00FFFFA5:8,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 349
	MOV.B	R0L,@(-1,ER6)
??CLINE 350
	MOV.B	R0L,@(-1,ER6)
??CLINE 352
	MOV.B	@(+11,ER6),R1L
	MOV.L	#H'00FFFFA1,ER2
	MOV.B	R1L,@ER2
??CLINE 354
	MOV.L	#_str00004,ER0
	PUSH.L	ER0
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFFA0,ER1
	MOV.B	R0L,@ER1
??CLINE 364
	MOV.B	@(+13,ER6),R0L
	EXTU.W	R0
	MOV.B	@H'00FFFFA0:8,R2L
	EXTU.W	R2
	OR.W	R0,R2
	MOV.B	R2L,@ER1
??CLINE 366
	MOV.B	@H'00FFFFA4:8,R0L
	MOV.B	R0L,@(-1,ER6)
??CLINE 367
	MOV.L	#_str00001,ER2
	PUSH.L	ER2
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFFA4,ER1
	MOV.B	R0L,@ER1
??CLINE 378
	MOV.L	#_str00005,ER0
	PUSH.L	ER0
	JSR	@_B8
	ADDS.L	#H'00000004,ER7
	MOV.L	#H'00FFFFA2,ER1
	MOV.B	R0L,@ER1
??ENDBLOCK(388)
?00017:
?00016:
?00014:
??ENDBLOCK(389)
??CLINE 389
_sci_init_end:

	MOV.L	ER6,ER7
	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_rs_pointer_init
_rs_pointer_init:
	PUSH.L	ER6
	MOV.L	ER7,ER6
	SUBS	#2,ER7
                           
??FUNCDEF(???rs_pointer_init) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(402)
??VAR ??UINT ??SYMBOL(???c) ??OFFSET(-2)
??CLINE 405
	XOR.W	R0,R0
	MOV.W	R0,@(-2,ER6)
	BRA	?00019:8
?00018:
	MOV.W	@(-2,ER6),R0
	INC.W	#H'0001,R0
	MOV.W	R0,@(-2,ER6)
?00019:
	MOV.W	@(-2,ER6),R0
	CMP.W	#H'0400,R0
	BCC	?00020:8
??BEGINBLOCK(406)
??CLINE 407
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	MOV.L	#H'00000400,ER1
	PUSH.L	ER0
	PUSH.L	ER1
	JSR	@__l_mul
	ADDS.L	#H'00000004,ER7
	POP.L	ER0
	MOV.L	#_rs_send_buf,ER2
	ADD.L	ER0,ER2
	MOV.W	@(-2,ER6),R0
	EXTU.L	ER0
	ADD.L	ER0,ER2
	XOR.B	R0L,R0L
	MOV.B	R0L,@ER2
??ENDBLOCK(408)
	BRA	?00018:8
?00020:
??CLINE 410
	XOR.W	R0,R0
	MOV.W	R0,@(-2,ER6)
	BRA	?00022:8
?00021:
	MOV.W	@(-2,ER6),R0
	INC.W	#H'0001,R0
	MOV.W	R0,@(-2,ER6)
?00022:
	MOV.W	@(-2,ER6),R0
	CMP.W	#H'0200,R0
	BCC	?00023:8
??BEGINBLOCK(411)
??CLINE 412
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	MOV.L	#H'00000200,ER1
	PUSH.L	ER0
	PUSH.L	ER1
	JSR	@__l_mul
	ADDS.L	#H'00000004,ER7
	POP.L	ER0
	MOV.L	#_rs_recv_buf,ER2
	ADD.L	ER0,ER2
	MOV.W	@(-2,ER6),R0
	EXTU.L	ER0
	ADD.L	ER0,ER2
	XOR.B	R0L,R0L
	MOV.B	R0L,@ER2
??ENDBLOCK(413)
	BRA	?00021:8
?00023:
??CLINE 415
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_rs_send_wp,ER1
	ADD.L	ER0,ER1
	XOR.W	R0,R0
	MOV.W	R0,@ER1
??CLINE 416
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_rp,ER2
	ADD.L	ER1,ER2
	MOV.W	R0,@ER2
??CLINE 417
	MOV.W	@(+8,ER6),R1
	EXTS.L	ER1
	SHLL.L	ER1
	MOV.L	#_rs_send_c,ER2
	ADD.L	ER1,ER2
	MOV.W	#H'0400,R1
	MOV.W	R1,@ER2
??CLINE 419
	MOV.W	@(+8,ER6),R2
	EXTS.L	ER2
	SHLL.L	ER2
	MOV.L	#_rs_recv_wp,ER3
	ADD.L	ER2,ER3
	MOV.W	R0,@ER3
??CLINE 420
	MOV.W	@(+8,ER6),R2
	EXTS.L	ER2
	SHLL.L	ER2
	MOV.L	#_rs_recv_rp,ER3
	ADD.L	ER2,ER3
	MOV.W	R0,@ER3
??CLINE 421
	MOV.W	@(+8,ER6),R2
	EXTS.L	ER2
	SHLL.L	ER2
	MOV.L	#_rs_recv_c,ER3
	ADD.L	ER2,ER3
	MOV.W	#H'0200,R2
	MOV.W	R2,@ER3
??ENDBLOCK(422)
??CLINE 422
_rs_pointer_init_end:

	MOV.L	ER6,ER7
	POP.L	ER6
	RTS

	segment	TEXT ATR_CODE
public	_IntERI0
_IntERI0:
	STM.L	ER0-ER3,@-SP
	STM.L	ER4-ER6,@-SP
                                                                      
??FUNCDEF(???IntERI0) ??VOID
??FUNCEND
??BEGINBLOCK(434)
??CLINE 435
	XOR.W	R0,R0
	PUSH.W	R0
	JSR	@_rxerr_job
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(436)
??CLINE 436
_IntERI0_end:

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

	segment	TEXT ATR_CODE
public	_IntERI1
_IntERI1:
	STM.L	ER0-ER3,@-SP
	STM.L	ER4-ER6,@-SP
                                                                      
??FUNCDEF(???IntERI1) ??VOID
??FUNCEND
??BEGINBLOCK(448)
??CLINE 449
	MOV.W	#H'0001,R0
	PUSH.W	R0
	JSR	@_rxerr_job
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(450)
??CLINE 450
_IntERI1_end:

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

	segment	TEXT ATR_CODE
public	_IntERI2
_IntERI2:
	STM.L	ER0-ER3,@-SP
	STM.L	ER4-ER6,@-SP
                                                                      
??FUNCDEF(???IntERI2) ??VOID
??FUNCEND
??BEGINBLOCK(462)
??CLINE 463
	MOV.W	#H'0002,R0
	PUSH.W	R0
	JSR	@_rxerr_job
	ADDS.L	#H'00000002,ER7
??ENDBLOCK(464)
??CLINE 464
_IntERI2_end:

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

	segment	TEXT ATR_CODE
public	_rxerr_job
_rxerr_job:
	PUSH.L	ER6
	MOV.L	ER7,ER6
                                         
??FUNCDEF(???rxerr_job) ??VOID
??VAR ??SINT ??SYMBOL(???ch) ??OFFSET(8)
??FUNCEND
??BEGINBLOCK(476)
??CLINE 477
	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'0020,R0
	OR.W	R0,R0
	BEQ	?00024:8
??BEGINBLOCK(478)
??CLINE 479
	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'DF,R1L
	MOV.B	R1L,@ER0
??CLINE 480
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_orerr_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??ENDBLOCK(481)
?00024:
??CLINE 482
	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'0010,R0
	OR.W	R0,R0
	BEQ	?00025:8
??BEGINBLOCK(483)
??CLINE 484
	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'EF,R1L
	MOV.B	R1L,@ER0
??CLINE 485
	MOV.W	@(+8,ER6),R0
	EXTS.L	ER0
	SHLL.L	ER0
	MOV.L	#_frerr_c,ER1
	ADD.L	ER0,ER1
	MOV.W	@ER1,R0
	INC.W	#H'0001,R0
	MOV.W	R0,@ER1
??ENDBLOCK(486)
?00025:
??CLINE 487
	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'0008,R0
	OR.W	R0,R0
	BEQ	?00026:8
??BEGINBLOCK(488)
??CLINE 489
	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'F7,R1L
	MOV.B	R1L,@ER0
??CLINE 490
	MOV.W	@(+8,ER6),R0

⌨️ 快捷键说明

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