色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

Hi,歡迎來到嵌入式培訓(xùn)高端品牌 - 華清遠(yuǎn)見教育科技集團(tuán)<北京總部官網(wǎng)>,專注嵌入式工程師培養(yǎng)15年!
當(dāng)前位置: > 華清遠(yuǎn)見教育科技集團(tuán) > 嵌入式學(xué)習(xí) > 講師博文 > 用匯編語言申請棧空間
用匯編語言申請棧空間
時間:2017-01-05作者:華清遠(yuǎn)見

在C程序運(yùn)行以前要設(shè)置好棧空間,在嵌入式ARM系統(tǒng)中,ARM 的啟動代碼可以實現(xiàn)此類功能,

etup Stack for each mode
                                LDR        R0, =Stack_Top
        ; Enter Undefined Instruction Mode and set its Stack Pointer
                                MSR         CPSR_c, #Mode_UND:OR:I_Bit:OR:F_Bit
                                MOV          SP, R0
                                SUB          R0, R0, #UND_Stack_Size
        ; Enter Abort Mode and set its Stack Pointer
                                MSR        CPSR_c, #Mode_ABT:OR:I_Bit:OR:F_Bit
                                MOV        SP, R0
                                SUB         R0, R0, #ABT_Stack_Size
        ; Enter FIQ Mode and set its Stack Pointer
                                MSR         CPSR_c, #Mode_FIQ:OR:I_Bit:OR:F_Bit
                                MOV        SP, R0
                                SUB        R0, R0, #FIQ_Stack_Size
        ; Enter IRQ Mode and set its Stack Pointer
                                MSR        CPSR_c, #Mode_IRQ:OR:I_Bit:OR:F_Bit
                                MOV        SP, R0
                                SUB        R0, R0, #IRQ_Stack_Size
        ; Enter Supervisor Mode and set its Stack Pointer
                                MSR         CPSR_c, #Mode_SVC:OR:I_Bit:OR:F_Bit
                                MOV        SP, R0
                                SUB        R0, R0, #SVC_Stack_Size
        ; Enter User Mode and set its Stack Pointer
                                MSR         CPSR_c, #Mode_USR

以上是MDK的startup.s文件對各種處理器模式棧空間的設(shè)置,但是在多進(jìn)程編程時我們希望棧空間的設(shè)置更靈活,我們可以使用幾條偽指令來實現(xiàn)棧空間的申請,

AREA |subr|, CODE, READONLY

;軟件中斷

SoftwareInterrupt
        LDR SP, StackSvc ; 重新設(shè)置堆棧指針
        STMFD SP!, {R0-R3, R12, LR}
        StackSvc DCD (SvcStackSpace + SVC_STACK_LEGTH * 4 - 4)

在地址StackSvc的空間(SvcStackSpace + SVC_STACK_LEGTH * 4 - 4),這個值正好是下面用SPACE 申請的空間的高地址,ATPCS標(biāo)準(zhǔn)ARM采用FD棧,所以要去棧空間的高地址;

        AREA SWIStacks, DATA, NOINIT,ALIGN=2
        SvcStackSpace SPACE SVC_STACK_LEGTH * 4

使用SPACE 申請以SvcStackSpace標(biāo)號為起始地址,空間為SVC_STACK_LEGTH * 4大小的空間。

發(fā)表評論
評論列表(網(wǎng)友評論僅供網(wǎng)友表達(dá)個人看法,并不表明本站同意其觀點或證實其描述)
色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 日韩有码在线电影| 国产精品爱久久久久久久| 久久精品人人做人人爽| 中文综合在线观看| 色偷偷888欧美精品久久久| 日韩小视频在线观看| 欧美日韩美女在线| 97视频网站入口| 国产精品久久久久国产a级| 成人免费午夜电影| 国产精品久久久久久久久久久久久| 奇米成人av国产一区二区三区| 国产精品第8页| 亚洲精品乱码久久久久久按摩观| 亚洲精品少妇网址| 俺去了亚洲欧美日韩| 欧美激情亚洲激情| 国产精品678| 亚洲成av人乱码色午夜| 国产一区二区三区在线免费观看| 久久成人精品电影| 日本不卡高字幕在线2019| 亚洲一区二区三区在线视频 | 色噜噜国产精品视频一区二区 | 国产精品白嫩美女在线观看| 成人午夜黄色影院| 中文字幕精品网| 欧美大片在线看| 色七七影院综合| 欧美精品久久久久久久久| 国产脚交av在线一区二区| 亚洲人av在线影院| 日韩欧美在线视频日韩欧美在线视频| 国产精品爽黄69天堂a| 日韩在线观看成人| 欧美中在线观看| 亚洲欧美综合另类中字| 欧美激情亚洲一区| 亚洲国产精品系列| 日韩欧美国产中文字幕| 亚洲专区中文字幕|