欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
STM32F429的啟動文件 startup_stm32f429xx.s中的疑問?
[打印本頁]
作者:
米奇
時(shí)間:
2017-2-8 17:06
標(biāo)題:
STM32F429的啟動文件 startup_stm32f429xx.s中的疑問?
下面的代碼是從STM32F429的啟動文件 startup_stm32f429xx.s中摘抄的關(guān)于棧區(qū)定義的匯編代碼:
Stack_Size
EQU
0x400
; ……………………………………………………第1行
AREA STACK
,
NOINIT
,
READWRITE
,
ALIGN
=
3
………..第2行
Stack_Mem
SPACE
Stack_Size …………………………………………………..第3行
__initial_sp …………………………………………………………………………………….第4行
(1)這4行語句中有3個(gè)偽指令“
EQU
,
AREA
,
SPACE
”,共4行代碼,只有第1行的代碼后面有一個(gè)分號“;”,其他3行都沒有,這是怎么回事?
(2)第1行代碼定義了一個(gè)變量Stack_Size且 Stack_Size==0x400,這我可以理解,沒啥問題。
(3)第2行代碼,是偽指令A(yù)REA,定義了一個(gè)數(shù)據(jù)段段名為STACK的內(nèi)存空間,不初始化或不初始化為0,可讀可寫,并以8字節(jié)對齊。這個(gè)8字節(jié)對齊是什么概念?為什么要8字節(jié)對齊?
(4)第3行代碼中,
SPACE
Stack_Size是開辟一個(gè)大小為0x400的內(nèi)存空間,那么"Stack_Mem"是標(biāo)號嗎?是表示開辟的這個(gè)內(nèi)存空間的名稱是Stack_Mem么?本來我也認(rèn)為Stack_Mem是一個(gè)定義的內(nèi)存空間的名稱,可是在“.MAP”文件中,Stack_Mem的值卻是個(gè)地址(如下灰色區(qū)域所示),可以看出Stack_Mem==0x20000388,它不是內(nèi)存空間么,怎么會是0x20000388?而不是0x400=1024KB,為什么?
Symbol Name Value Ov Type Size Object(Section)
.data 0x2000001c Section 4 usart.o(.data)
.bss 0x20000020 Section 264 usart.o(.bss)
.bss 0x20000128 Section 96 libspace.o(.bss)
HEAP 0x20000188 Section 512 startup_stm32f429xx.o(HEAP)
Heap_Mem 0x20000188 Data 512 startup_stm32f429xx.o(HEAP)
STACK 0x20000388 Section 1024 startup_stm32f429xx.o(STACK)
Stack_Mem 0x20000388 Data 1024 startup_stm32f429xx.o(STACK)
__initial_sp 0x20000788 Data 0 startup_stm32f429xx.o(STACK)
(5)第4行代碼中,“_initial_sp”表示棧頂指針,_initial_sp是怎么來的?那我隨便寫個(gè)字符都可以表示棧頂指針了??比如我用“initial_sp”替代“
_initial_sp”,那么initial_sp也可以表示棧頂指針了?
作者:
lvderen
時(shí)間:
2017-2-8 22:31
好,好,學(xué)習(xí),學(xué)習(xí)學(xué)習(xí)
作者:
yzwzfyz
時(shí)間:
2017-2-12 08:40
樓主很認(rèn)真,將來必成。
1、此句是純匯編,";"號是匯編的注解標(biāo)記,無它后面的字符會被認(rèn)為是語句的一部分,顯然“;”后面的不是語句,是注釋。
3、猜一下:8字對齊是,不足8個(gè)字符時(shí)用“空”補(bǔ)足,目的:格式整齊,便于觀看。
4、也猜一下: 0x20000388 是位置指針,指示堆棧的位置起點(diǎn)。它等價(jià)于0388,因?yàn)樽钋懊娴?0太大,地址溢出了。但20在編譯時(shí)有用。什么用記不清了,但不妨礙你應(yīng)用。
5、你說的對。但是你需要保證所有的編譯程序都認(rèn)為“initial_sp表示棧頂指針”。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1