日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]所有的Thumb指令都是16位的。它們都是ARM指令重新編碼得到的,所以繼承了ARM指令集的許多特點。

11.2Thumb編程模型

所有的Thumb指令都是16位的。它們都是ARM指令重新編碼得到的,所以繼承了ARM指令集的許多特點。

①有數據處理、數據傳送和流控制的指令結構。

②支持8位字節(jié)、16位半字和32位字數據類型,半字以兩字節(jié)邊界對齊,字以4字節(jié)邊界對齊。

③32位的無分段存儲器(unsegmentedmemory)。

Thumb指令集除了繼承了ARM指令集的一些特點外,與ARM指令集存在以下一些差異。

①大多數Thumb指令為無條件執(zhí)行指令(所有ARM指令都是條件執(zhí)行的)。

②許多Thumb數據處理指令采用了2地址格式(目的寄存器與源寄存器相同)。而ARM指令中除64位乘法指令外,其余指令均采用3地址模式。

③Thumb指令格式減少了很多ARM指令格式的限制,使Thumb指令編寫的代碼密度大大提高。

無論處理器處于什么狀態(tài),所有的異常都使處理器返回到ARM狀態(tài),并完成異常處理。但異常發(fā)生時,CPSR狀態(tài)寄存器在進入異常時被保存到相應的SPSR中,當異常處理結束后,處理器將恢復到異常發(fā)生前的狀態(tài),并按照發(fā)生異常時處理器的狀態(tài)繼續(xù)執(zhí)行ARM或Thumb指令。

應該注意的是,ARM異常返回指令需要根據ARM流水線的行為對返回地址進行調整。由于Thumb指令是2字節(jié)長,而ARM指令是4字節(jié)長,所以由Thumb執(zhí)行狀態(tài)進入異常時其自然偏移量應與ARM不同(ARM狀態(tài)下,拷貝到鏈接寄存器的值PC-4)。為了減少編程的復雜性,ARM體系結構中設置了硬件邏輯,以實現Thumb狀態(tài)的自動地址偏移調整,使ARM和Thumb狀態(tài)編程一致。

表11.2列出了Thumb狀態(tài)下發(fā)生異常時LR的值。

表11.2 Thumb狀態(tài)異常返回指令

異常

異常鏈接寄存器值

返回指令

Reset

不可預知的值

未定義指令

未定義指令地址+2

MOVPC,r14

SWI

Swi指令地址+2

MOVPC,r14

預取異常

預取異常指令+4

MOVPC,r14,#4

數據異常

產生預取異常指令地址+8

MOVPC,r14,#8

IRQ

下一條將被執(zhí)行的指令地址+4

MOVPC,r14,#4

FIQ

下一條將被執(zhí)行的指令地址+4

MOVPC,r14,#4

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉