在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM寄存器的7種工作模式和幾種尋址方式

            ARM寄存器的7種工作模式和幾種尋址方式

            作者: 時間:2016-11-09 來源:網絡 收藏
            ARM寄存器的7種工作模式
            CPSR[5:0]
            10000 user
            10001 FIQ
            10010 IRQ
            10011 SVC
            10111 中止
            11011 未定義

            11111 系統(tǒng)

            本文引用地址:http://www.biyoush.com/article/201611/317765.htm

            用這兩個指令讀寫CPRS的值

            msr

            mrs

            如:

            MRS R1,CPSR ; 將CPSR狀態(tài)寄存器讀取,保存到R1中
            MRS R2,SPSR ; 將SPSR狀態(tài)寄存器讀取,保存到R2中
            MSR R1,CPSR ; 將R1狀態(tài)寄存器讀取,保存到CPSR中
            MSR R2,SPSR ; 將R2狀態(tài)寄存器讀取,保存到SPSR中

            工作模式
            ARM微處理器支持7種工作模式,分別為:
            1、用戶模式(Usr)
            用于正常執(zhí)行程序
            2、快速中斷模式(FIQ)
            用于高速數(shù)據(jù)傳輸
            3、外部中斷模式(IRQ)
            用于通常的中斷處理
            4. 管理模式(svc)
            操作系統(tǒng)使用的保護模式
            5. 數(shù)據(jù)訪問終止模式(abt)
            當數(shù)據(jù)或指令預取終止時進入該模式,可用于虛擬存儲及
            存儲保護。
            6. 系統(tǒng)模式(sys)
            運行具有特權的操作系統(tǒng)任務。
            7. 未定義指令中止模式(und)
            當未定義的指令執(zhí)行時進入該模式,可用于支持硬件

            ARM微處理器的運行模式可以通過軟件改
            變,也可以通過外部中斷或異常處理改變。
            應用程序運行在用戶模式下,當處理器運行
            在用戶模式下時,某些被保護的系統(tǒng)資源是
            不能被訪問的。

            除用戶模式以外,其余的所有6種模式稱之為
            非用戶模式,或特權模式(Privileged
            Modes);其中除去用戶模式和系統(tǒng)模式以
            外的5種又稱為異常模式(Exception
            Modes),常用于處理中斷或異常,以及需

            要訪問受保護的系統(tǒng)資源等情況。

            所謂尋址方式就是處理器根據(jù)指令中給出的地址信息來尋找物理地址的方式。

            立即尋址
            立即尋址也叫立即數(shù)尋址,這是一種特殊的尋址方式,操
            作數(shù)本身就在指令中給出,只要取出指令也就取到了操作
            數(shù)。這個操作數(shù)被稱為立即數(shù),對應的尋址方式也就叫做
            立即尋址。例如以下指令:
            ADD R0,R0,#1 ;R0←R0+1
            ADD R0,R0,#0x3f ;R0←R0+0x3f
            在以上兩條指令中,第二個源操作數(shù)即為立即數(shù),要求以
            “#”為前綴,對于以十六進制表示的立即數(shù),還要求在
            “#”后加上“0x”或“&”。

            寄存器尋址

            寄存器尋址就是利用寄存器中的數(shù)值作為操作
            數(shù),這種尋址方式是各類微處理器經常采用的
            一種方式,也是一種執(zhí)行效率較高的尋址方
            式。
            ADD R0,R1,R2 ;R0←R1+R2
            該指令的執(zhí)行效果是將寄存器R1和R2的內容
            相加,其結果存放在寄存器R0中。

            寄存器間接尋址

            寄存器間接尋址就是以寄存器中的值作為操作數(shù)的地
            址,而操作數(shù)本身存放在存儲器中。例如以下指令:
            ADD R0,R1,[R2] ;R0←R1+[R2]
            LDR R0,[R1] ;R0←[R1]
            在第一條指令中,以寄存器R2的值作為操作數(shù)的地
            址,在存儲器中取得一個操作數(shù)后與R1相加,結果存
            入寄存器R0中。第二條指令將以R1的值為地址的存儲
            器中的數(shù)據(jù)傳送到R0中。

            基址變址尋址

            基址變址尋址就是將寄存器(該寄存器一般稱作基址寄存器)
            的內容與指令中給出的地址偏移量相加,從而得到一個操作數(shù)
            的有效地址:
            LDR R0,[R1,#4] ;R0←[R1+4]
            LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4
            LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4
            LDR R0,[R1,R2] ;R0←[R1+R2]

            多寄存器尋址

            采用多寄存器尋址方式,一條指令可以完成多個寄存器值的傳
            送。這尋址方式可以用一條指令完成傳送最多16個通用寄存器
            的值。以下指令:
            LDMIA R0,{R1,R2,R3,R4}

            ;R1←[R0]
            ;R2←[R0+4]
            ;R3←[R0+8]
            ;R4←[R0+12]
            該指令的后綴IA表示在每次執(zhí)行完加載/存儲操作后,R0按字長
            度增加,因此,指令可將連續(xù)存儲單元的值傳送到R1~R4。

            相對尋址

            與基址變址尋址方式相類似,相對尋址以程序計數(shù)器PC的當
            前值為基地址,指令中的地址標號作為偏移量,將兩者相加
            之后得到操作數(shù)的有效地址。以下程序段完成子程序的調用
            和返回,跳轉指令BL采用了相對尋址方式:
            BL NEXT ;跳轉到子程序NEXT處執(zhí)行
            ……
            NEXT
            ……
            MOV PC,LR ;從子程序返回

            堆棧尋址

            堆棧是一種數(shù)據(jù)結構,按先進后出(First In
            Last Out,F(xiàn)ILO)的方式工作,使用一個稱作堆
            棧指針的專用寄存器指示當前的操作位置,堆棧
            指針總是指向棧頂。
            遞增堆棧:向高地址方向生長
            遞減堆棧:向低地址方向生長
            滿堆棧:堆棧指針指向最后壓入堆棧的有效數(shù)據(jù)項
            空堆棧:堆棧指針指向下一個要放入數(shù)據(jù)的空位置



            評論


            技術專區(qū)

            關閉