異常產生指令
1、【SWI指令】
SWI 24位的立即數
SWI指令用于產生軟件中斷,以便用戶程序能調用操作系統的系統例程。
SWI 0x02 ;該指令調用操作系統編號位02的系統例程。
2、【BKPT指令】
BKPT 16位的立即數
BKPT指令產生軟件斷點中斷,可用于程序的調試。
偽代碼
1.【AREA】
一個匯編程序至少要包含一個段,當程序太長時,也可以將程序分為多個代碼段和數據段,因此在匯編程序的開頭,我們一般的語句會用到AREA。
AREA 段名 屬性 1 ,屬性 2 ,....
AREA Init ,CODE ,READONLY ;定義一個代碼段,段名為 Init ,屬性為只讀。
2、【ALIGN】
ALIGN { 表達式 { ,偏移量 }}
ALIGN 偽指令可通過添加填充字節的方式,使當前位置滿足一定的對其方式。其中,表達式的值用于指定對齊方式,可能的取值為2的冪,如 1 、2 、4 、8 、16 等。eg : xxx = ALIGN(4)
3、【CODE16、CODE32】
CODE16 (或 CODE32 )
CODE16 偽指令通知編譯器,其后的指令序列為 16 位的 Thumb 指令。
CODE32 偽指令通知編譯器,其后的指令序列為 32 位的 ARM 指令。
4、【ENTRY】
ENTRY
ENTRY(stext)
很常見!!!ENTRY 偽指令用于指定匯編程序的入口點。在一個完整的匯編程序中至少要有一個 ENTRY (也可以有多個,當有多個 ENTRY 時,程序的真正入口點由鏈接器指定),但在一個源文件里最多只能有一個 ENTRY (可以沒有)。
5、【END】
END
END 偽指令用于通知編譯器已經到了源程序的結尾。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
ARM
+關注
關注
135文章
9553瀏覽量
391889 -
Linux
+關注
關注
88文章
11760瀏覽量
219036 -
指令
+關注
關注
1文章
623瀏覽量
37536 -
代碼
+關注
關注
30文章
4968瀏覽量
73970 -
系統
+關注
關注
1文章
1046瀏覽量
22316
發布評論請先 登錄
相關推薦
熱點推薦
講講ARM指令集格式以及常用的ARM匯編指令
對于搞嵌入式驅動或者操作系統的人來說,掌握匯編語言的使用還是比較重要的,畢竟有時候在分析定位問題的時候,多多少少都會有匯編的身影。本文主要講講ARM指令集格式以及常用的
Whetstone代碼涉及的浮點指令匯編分析
對benchmark中的whetstone進行代碼分析,通過反匯編統計所出現的浮點指令,共有26種,如下
特點是只涉及單精度的浮點指令,并且存在有浮點Load/Store的壓縮
發表于 10-22 08:11
常用的ARM匯編指令
第一次寫博客,請各路大神多多關照。本人從事軟件開發相關的工作,平時主要用c語言擼代碼,前段時間因工作需要,接觸到了ARM架構下的匯編指令,之前學過51單片機的
發表于 07-01 11:06
淺析ARM體系異常分類及其偽代碼
MMU,引起異常的指令的物理地址被存儲到內存中。偽代碼r14_svc = address of the aborted instruction+4SPSR_und = CPSRCPS
發表于 04-13 11:44
ARM匯編指令:異常產生指令和偽代碼
評論