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

📄 callt.asm

📁 如何使用NEC MCU的callt函数进行开发
💻 ASM
字号:
; 78K/0 Series C Compiler V3.70 Assembler Source
;                                                Date:11 Apr 2006 Time:09:50:28

; Command   : -fcallt.pcc
; In-file   : callt.c
; Asm-file  : callt.asm
; Para-file : -cF054780
;             -yD:\tool\78k0-QB\DEV\
;             callt.c

$PROCESSOR(F054780)
$DEBUG
$NODEBUGA
$KANJICODE SJIS
$TOL_INF	03FH, 0370H, 02H, 020H, 00H

$DGS	FIL_NAM, .file,		02EH,	0FFFEH,	03FH,	067H,	01H,	00H
$DGS	AUX_FIL, callt.c
$DGS	MOD_NAM, callt,		00H,	0FFFEH,	00H,	077H,	00H,	00H
$DGS	SEC_NAM, @@BITS,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@CNST,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@R_INIT,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@INIT,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@DATA,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, DAT1,		U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, DAT2,		U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@R_INIS,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@INIS,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@DATS,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@CALT,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@CODE,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@CALF,	U,	U,	00H,	078H,	00H,	00H
$DGS	GLV_SYM, _main,		U,	U,	08001H,	020H,	01H,	02H
$DGS	AUX_FUN, 00H,		U,	U,	019H,	00H
$DGS	BEG_FUN, ??bf_main,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_BEG, 0CH,		06H,	019H
$DGS	AUT_VAR, _ret_val,	04H,	0FFFFH,	04H,	01H,	00H,	00H
$DGS	AUT_VAR, _ret_num,	02H,	0FFFFH,	04H,	01H,	00H,	00H
$DGS	AUT_VAR, _ret_data,	00H,	0FFFFH,	04H,	01H,	00H,	00H
$DGS	END_FUN, ??ef_main,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_END, 09H
$DGS	GLV_SYM, _tsub,		U,	U,	09004H,	020H,	01H,	02H
$DGS	AUX_FUN, 00H,		U,	U,	020H,	01H
$DGS	BEG_FUN, ??bf_tsub,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_BEG, 017H,		02H,	020H
$DGS	REG_VAR, _val,		0103H,	0FFFFH,	0104H,	04H,	00H,	00H
$DGS	END_FUN, ??ef_tsub,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_END, 05H
$DGS	GLV_SYM, _tadd,		U,	U,	09004H,	020H,	01H,	02H
$DGS	AUX_FUN, 00H,		U,	U,	027H,	01H
$DGS	BEG_FUN, ??bf_tadd,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_BEG, 01DH,		02H,	027H
$DGS	REG_VAR, _num,		0103H,	0FFFFH,	0104H,	04H,	00H,	00H
$DGS	END_FUN, ??ef_tadd,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_END, 04H
$DGS	GLV_SYM, _tmul,		U,	U,	08004H,	020H,	01H,	02H
$DGS	AUX_FUN, 00H,		U,	U,	02EH,	00H
$DGS	BEG_FUN, ??bf_tmul,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_BEG, 022H,		02H,	02EH
$DGS	REG_VAR, _data,		0103H,	0FFFFH,	0104H,	04H,	00H,	00H
$DGS	END_FUN, ??ef_tmul,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_END, 04H
$DGS	GLV_SYM, _a,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _b,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _c,		U,	U,	0304H,	020H,	00H,	00H
$DGS	GLV_SYM, _d,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, ?tadd,		U,	U,	00H,	020H,	00H,	00H
$DGS	GLV_SYM, ?tsub,		U,	U,	00H,	020H,	00H,	00H

	PUBLIC	_a
	PUBLIC	_b
	PUBLIC	_c
	PUBLIC	_d
	PUBLIC	?tsub
	PUBLIC	?tadd
	PUBLIC	_tmul
	PUBLIC	_main
	PUBLIC	_tsub
	PUBLIC	_tadd

@@BITS	BSEG

@@CNST	CSEG	UNITP

@@R_INIT	CSEG	UNITP

@@INIT	DSEG	UNITP

@@DATA	DSEG	UNITP
_a:	DS	(2)

DAT1	DSEG	AT 0FB00H
_b:	DS	(2)

DAT2	DSEG	AT 0FB20H
_d:	DS	(2)

@@R_INIS	CSEG	UNITP

@@INIS	DSEG	SADDRP

@@DATS	DSEG	SADDRP
_c:	DS	(2)

@@CALT	CSEG	CALLT0
?tsub:	DW	_tsub
?tadd:	DW	_tadd

; line     1 : int a;
; line     2 : #pragma section @@DATA DAT1 AT 0FB00H
; line     3 : int b;
; line     4 : sreg int c;
; line     5 : #pragma section @@DATA DAT2 AT 0FB20H
; line     6 : int  d;
; line     7 : 
; line     8 : __callt int tsub(void);
; line     9 : __callt int tadd(void);
; line    10 :  int tmul(void);
; line    11 : void main()
; line    12 : {

@@CODE	CSEG
_main:
$DGL	1,16
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 8
	movw	hl,ax						;[INF] 1, 4
??bf_main:
; line    13 :     int  ret_val;
; line    14 : 	int	 ret_num;
; line    15 : 	int	 ret_data;
; line    16 :     
; line    17 :     ret_num  = tadd();
$DGL	0,6
	callt	[?tadd]						;[INF] 1, 6
	movw	ax,bc						;[INF] 1, 4
	mov	[hl+3],a	; ret_num 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+2],a	; ret_num 			;[INF] 2, 8
; line    18 :     ret_val  = tsub();
$DGL	0,7
	callt	[?tsub]						;[INF] 1, 6
	movw	ax,bc						;[INF] 1, 4
	mov	[hl+5],a	; ret_val 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+4],a	; ret_val 			;[INF] 2, 8
; line    19 :     ret_data = tmul();
$DGL	0,8
	call	!_tmul						;[INF] 3, 7
	movw	ax,bc						;[INF] 1, 4
	mov	[hl+1],a	; ret_data 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl],a	; ret_data 				;[INF] 1, 4
; line    20 : }
$DGL	0,9
??ef_main:
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_main:
; line    21 : 
; line    22 : __callt int tsub(void)
; line    23 : {
_tsub:
$DGL	1,25
	push	hl						;[INF] 1, 4
??bf_tsub:
; line    24 :     int  val;
; line    25 : 
; line    26 :     return val;
$DGL	0,4
	movw	ax,hl						;[INF] 1, 4
	movw	bc,ax						;[INF] 1, 4
; line    27 : }
$DGL	0,5
??ef_tsub:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_tsub:
; line    28 : __callt int tadd(void)
; line    29 : {
_tadd:
$DGL	1,32
	push	hl						;[INF] 1, 4
??bf_tadd:
; line    30 : 	int	num;
; line    31 : 	return	num;
$DGL	0,3
	movw	ax,hl						;[INF] 1, 4
	movw	bc,ax						;[INF] 1, 4
; line    32 : 	}
$DGL	0,4
??ef_tadd:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_tadd:
; line    33 :  int tmul(void)
; line    34 : {
_tmul:
$DGL	1,39
	push	hl						;[INF] 1, 4
??bf_tmul:
; line    35 : 	int	data;
; line    36 : 	return	data;
$DGL	0,3
	movw	ax,hl						;[INF] 1, 4
	movw	bc,ax						;[INF] 1, 4
; line    37 : 	}
$DGL	0,4
??ef_tmul:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_tmul:

@@CALF	CSEG	FIXED
	END


; *** Code Information ***
;
; $FILE D:\demo\exfunc\callt\callt.c
;
; $FUNC main(12)
;	void=(void)
;	CODE SIZE= 34 bytes, CLOCK_SIZE= 131 clocks, STACK_SIZE= 10 bytes
;
; $CALL tadd(17)
;	bc=(void)
;
; $CALL tsub(18)
;	bc=(void)
;
; $CALL tmul(19)
;	bc=(void)
;
; $FUNC tsub(23)
;	bc=(void)
;	CODE SIZE= 5 bytes, CLOCK_SIZE= 22 clocks, STACK_SIZE= 2 bytes
;
; $FUNC tadd(29)
;	bc=(void)
;	CODE SIZE= 5 bytes, CLOCK_SIZE= 22 clocks, STACK_SIZE= 2 bytes
;
; $FUNC tmul(34)
;	bc=(void)
;	CODE SIZE= 5 bytes, CLOCK_SIZE= 22 clocks, STACK_SIZE= 2 bytes

; Target chip : uPD78F0547_80
; Device file : V2.10 

⌨️ 快捷键说明

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