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

📄 section.asm

📁 该程序介绍了在MCU编程时如何分配变量和程序的地址。
💻 ASM
字号:
; 78K/0 Series C Compiler V3.70 Assembler Source
;                                                Date:26 Apr 2007 Time:11:40:59

; Command   : -fsection.pcc
; In-file   : section.c
; Asm-file  : section.asm
; Para-file : -cF054780
;             -yC:\NECTools32\DEV\
;             -sa
;             -zp
;             section.c

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

$DGS	FIL_NAM, .file,		021H,	0FFFEH,	03FH,	067H,	01H,	00H
$DGS	AUX_FIL, section.c
$DGS	MOD_NAM, section,	00H,	0FFFEH,	00H,	077H,	00H,	00H
$DGS	SEC_NAM, @@BITS,	U,	U,	00H,	078H,	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, ??R_INIT,	U,	U,	00H,	078H,	00H,	00H
$DGS	SEC_NAM, @@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, ??DATA2,	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, ??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,	020H,	00H
$DGS	BEG_FUN, ??bf_main,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_BEG, 033H,		00H,	01AH
$DGS	BEG_BLK, ??bb00_main,	U,	U,	00H,	064H,	01H,	00H
$DGS	AUX_BEG, 04H,		00H,	00H
$DGS	END_BLK, ??eb00_main,	U,	U,	00H,	064H,	01H,	00H
$DGS	AUX_END, 07H
$DGS	END_FUN, ??ef_main,	U,	U,	00H,	065H,	01H,	00H
$DGS	AUX_END, 08H
$DGS	STA_SYM, L0001,		?L0001,	U,	05002H,	03H,	00H,	03H
$DGS	GLV_SYM, _a1,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _b1,		U,	U,	0304H,	020H,	00H,	00H
$DGS	GLV_SYM, _c1,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _d1,		U,	U,	05004H,	020H,	00H,	00H
$DGS	GLV_SYM, _a2,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _b2,		U,	U,	0304H,	020H,	00H,	00H
$DGS	GLV_SYM, _c2,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _d2,		U,	U,	05004H,	020H,	00H,	00H
$DGS	GLV_SYM, _a3,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _b3,		U,	U,	0304H,	020H,	00H,	00H
$DGS	GLV_SYM, _c3,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _d3,		U,	U,	05004H,	020H,	00H,	00H
$DGS	GLV_SYM, _a4,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _b4,		U,	U,	0304H,	020H,	00H,	00H
$DGS	GLV_SYM, _c4,		U,	U,	04H,	020H,	00H,	00H
$DGS	GLV_SYM, _d4,		U,	U,	05004H,	020H,	00H,	00H
$DGS	GLV_SYM, _e4,		U,	U,	034CH,	020H,	00H,	00H
$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, _p,		U,	U,	05002H,	020H,	00H,	01H

	PUBLIC	_a1
	PUBLIC	_b1
	PUBLIC	_c1
	PUBLIC	_d1
	PUBLIC	_a2
	PUBLIC	_b2
	PUBLIC	_c2
	PUBLIC	_d2
	PUBLIC	_a3
	PUBLIC	_b3
	PUBLIC	_c3
	PUBLIC	_d3
	PUBLIC	_a4
	PUBLIC	_b4
	PUBLIC	_c4
	PUBLIC	_d4
	PUBLIC	_e4
	PUBLIC	_a
	PUBLIC	_b
	PUBLIC	_c
	PUBLIC	_d
	PUBLIC	_p
	PUBLIC	_main

??BITS	BSEG
_e4	DBIT

??CNST	CSEG	AT 9000H
_d1:	DW	02H	; 2
_d2:	DW	04H	; 4
_d3:	DW	06H	; 6
_d4:	DW	08H	; 8
?L0001:	DB	'Hello'
	DB	00H
_p:	DW	?L0001

@@R_INIT	CSEG	UNITP
	DW	01H	; 1
	DW	03H	; 3
	DW	05H	; 5

??R_INIT	CSEG	AT 2000H
	DW	07H	; 7

@@INIT	DSEG	UNITP
_c1:	DS	(2)
_c2:	DS	(2)
_c3:	DS	(2)

??INIT	DSEG	UNITP
_c4:	DS	(2)

??DATA	DSEG	UNITP
_a1:	DS	(2)
_a2:	DS	(2)

??DATA2	DSEG	UNITP
_a3:	DS	(2)

@@DATA	DSEG	UNITP
_a4:	DS	(2)
_a:	DS	(2)

DAT1	DSEG	AT 0E000H
_b:	DS	(2)

DAT2	DSEG	AT 0FB20H
_d:	DS	(2)

@@R_INIS	CSEG	UNITP

@@INIS	DSEG	SADDRP

@@DATS	DSEG	SADDRP
_b1:	DS	(2)

??DATS	DSEG	SADDRP
_b2:	DS	(2)
_b3:	DS	(2)
_b4:	DS	(2)
_c:	DS	(2)

@@CALT	CSEG	CALLT0

; line     1 : #pragma section @@DATA   ??DATA	
; line     2 : #pragma section @@CNST   ??CNST AT 9000H
; line     3 :       int    a1;             // ??DATA
; line     4 : sreg  int    b1;             // 仐仐DATS
; line     5 :       int    c1 = 1;         // 仐仐INIT偲仐仐R_INIT
; line     6 : const int    d1 = 2;         // 仐仐CNST
; line     7 : 
; line     8 : #pragma section @@DATS   ??DATS
; line     9 :       int    a2;             // ??DATA
; line    10 : sreg  int    b2;             // ??DATS
; line    11 :       int    c2 = 3;         // 仐仐INIT偲仐仐R_INIT
; line    12 : const int    d2 = 4;         // 仐仐CNST
; line    13 : 
; line    14 : // ??DATA偑帺摦揑偵暵偠傜傟丆??DATA2偑桳岠偲側傞丅
; line    15 : #pragma section @@DATA   ??DATA2
; line    16 : #pragma section @@CNST   ??CNST AT 7000H
; line    17 :       int    a3;             // ??DATA2
; line    18 : sreg  int    b3;             // ??DATS
; line    19 :       int    c3 = 5;         // 仐仐INIT偲仐仐R_INIT
; line    20 : const int    d3 = 6;         // 仐仐CNST
; line    21 : 
; line    22 : // ??DATA2偑暵偠傜傟丆僨傿僼僅乕儖僩仐仐DATA偵栠傞
; line    23 : #pragma section @@DATA   @@DATA
; line    24 : 
; line    25 : // 仐仐INIT丆仐仐R_INIT偺椉曽偺柤慜傪曄偊側偄偲ROM壔偑攋抅偡傞偑
;              丆
; line    26 : // 偦傟偼儐乕僓愑擟丅
; line    27 : #pragma section @@INIT   ??INIT
; line    28 : #pragma section @@R_INIT ??R_INIT	AT	2000H
; line    29 :       int    a4;             // 仐仐DATA
; line    30 : sreg  int    b4;             // ??DATS
; line    31 :       int    c4 = 7;         // ??INIT偲??R_INIT
; line    32 : const int    d4 = 8;         // 仐仐CNST
; line    33 : 
; line    34 : // ??INIT, ??R_INIT偑暵偠傜傟丆僨傿僼僅乕儖僩偵栠傞丅
; line    35 : #pragma section @@INIT   @@INIT
; line    36 : #pragma section @@R_INIT @@R_INIT
; line    37 : #pragma section @@BITS   ??BITS
; line    38 : __boolean    e4;             // ??BITS
; line    39 : int a;
; line    40 : #pragma section @@DATA DAT1 AT 0e000H
; line    41 : int b;
; line    42 : sreg int c;
; line    43 : #pragma section @@DATA DAT2 AT 0FB20H
; line    44 : int  d;
; line    45 : 
; line    46 : #pragma section @@CNST   ??CNST
; line    47 : char *const  p   = "Hello";  // p傕"Hello"傕??CNST
; line    48 : 
; line    49 : 
; line    50 : void main ()
; line    51 : {

@@CODE	CSEG
_main:
$DGL	1,22
??bf_main:
; line    52 : 	b++;
$DGL	0,2
	movw	ax,!_b						;[INF] 3,10
	incw	ax						;[INF] 1, 4
	movw	!_b,ax						;[INF] 3,10
; line    53 :    while (1)
$DGL	0,3
?L0004:
; line    54 :    {b++;
$DGL	0,4
??bb00_main:
	movw	ax,!_b						;[INF] 3,10
	incw	ax						;[INF] 1, 4
	movw	!_b,ax						;[INF] 3,10
; line    55 :    d++;
$DGL	0,5
	movw	ax,!_d						;[INF] 3,10
	incw	ax						;[INF] 1, 4
	movw	!_d,ax						;[INF] 3,10
; line    56 :    	c4++;
$DGL	0,6
	movw	ax,!_c4						;[INF] 3,10
	incw	ax						;[INF] 1, 4
	movw	!_c4,ax						;[INF] 3,10
??eb00_main:
	br	$?L0004						;[INF] 2, 6
; line    57 :    }
; line    58 : }
$DGL	0,8
??ef_main:
	ret							;[INF] 1, 6
??ee_main:

@@CALF	CSEG	FIXED

@@BITS	BSEG

@@INIT	DSEG	UNITP

@@R_INIT	CSEG	UNITP

	END


; *** Code Information ***
;
; $FILE D:\demo\exfunc\section\section.c
;
; $FUNC main(51)
;	void=(void)
;	CODE SIZE= 31 bytes, CLOCK_SIZE= 108 clocks, STACK_SIZE= 0 bytes

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

⌨️ 快捷键说明

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