<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          ARM位操作和偽指令介紹

          作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          ARM匯編程序由指令(ARM指令和偽指令)、偽操作和宏指令組成。
          ARM偽操作:
          GET,通常用于包含定義常量的源文件,如用EQU定義的外設(shè)地址,類似于C語言中用include好含頭文件。(匯編語言中被包含的文件常以.inc結(jié)尾)GET 2440addr.inc
          AREA、ENTRY和END
          AREA操作常用于定義一個(gè)段。通常一個(gè)ARM源程序至少需要一個(gè)代碼段。
          ENTRY用于指定程序的入口點(diǎn)。
          END用于告訴匯編編譯器源文件已經(jīng)結(jié)束。
          EXPORT和IMPORT
          EXPORT 偽操作用于聲明外部標(biāo)號(hào),即當(dāng)前標(biāo)號(hào)是本源文件中定義的,在其他文件中可能會(huì)被引用。
          IMPORT 偽操作用于告訴編譯器當(dāng)前的符號(hào)不是本源文件中定義的,而是在其他源文件中定義的,在本源文件中可能引用該符號(hào)。
          EQU用于定義常量。提醒,在每條ARM指令前必須有空格,但是用EQU定義常量時(shí),必須頂格寫,否則編譯器會(huì)報(bào)錯(cuò)。
          LTORG用于聲明一個(gè)文字池,所謂文字池就是一個(gè)數(shù)據(jù)緩沖區(qū)。
          ALIGN偽操作通過調(diào)整地址指針使當(dāng)前位置滿足一定的對齊方式。在ARM代碼中要求地址符號(hào)是字對齊的。
          MACRO和MEND 偽操作用于宏定義。
          MACRO表示宏定義的開始,MEND表示宏定義的結(jié)束。用MACRO和MEND定義的一段代碼,稱為宏體。這樣,在程序中就可以通過宏指令多次調(diào)用該代碼段。
          MACRO
          {$label}MACRO Name {$parameter}{$parameter}……
          ;這里添加自己的代碼
          MEND
          MAP和FIELD
          MAP用于定義內(nèi)存表的首地址,其中MAP也可以用^表示。FIELD用于定義一個(gè)內(nèi)存表中的數(shù)據(jù)域,其中FIELD可以用#表示。MAP和FIELD組合類似于C語言中定義一個(gè)數(shù)組,MAP指向數(shù)組的首地址,F(xiàn)IELD用于分配數(shù)組中的各個(gè)元素。
          #define pISR_SWI (*(unsigned*)(_ISR_STARTADDRESS+0x8))
          強(qiáng)制轉(zhuǎn)換后,可以對pISR_SWI進(jìn)行賦值,調(diào)用。
          _ISR_STARTADDRESS EQU 0x33FFFF00
          ^ _ISR_STARTADDRESS
          HandleReset # 4
          HandleUndef # 4
          HandleSWI # 4
          HandlePabort # 4
          HandleDabort # 4
          ARM偽指令:ADRL;LDR;DCD SPACE


          關(guān)鍵詞: ARM位操作偽指

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();