在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統 > 設計應用 > ARM GNU 匯編偽指令簡介

            ARM GNU 匯編偽指令簡介

            作者: 時間:2016-11-21 來源:網絡 收藏
            一.什么是匯編偽指令
            1. 匯編指令語句
              每一條指令語句在源程序匯編時都要產生可供計算機執(zhí)行的指令代碼(即目標代碼),所以這種語句又叫可執(zhí)行語句。每一條指令語句表示計算機具有的一個基本能力,如數據傳送,兩數相加或相減,移位等,而這種能力是在目標程序(指令代碼的有序集合)運行時完成的,是依賴于汁算機內的中央處理器(CPU)、存儲器、I/O接口等硬件設備來實現的。
            2. 匯編偽指令語句
              偽指令語句是用于指示匯編程序如何匯編源程序,所以這種語句又叫命令語句。例如源程序中的偽指令語句告訴匯編程序:該源程序如何分段,有哪些邏輯段在程序段中哪些是當前段,它們分別由哪個段寄存器指向;定義了哪些數據,存儲單元是如何分配的等等。偽指令語句除定義的具體數據要生成目標代碼外,其他均沒有對應的目標代碼。偽指令語句的這些命令功能是由匯編程序在匯編源程序時,通過執(zhí)行一段程序來完成的,而不是在運行目標程序時實現的。
            3. 匯編偽指令的作用

            二 .ARM GNU 匯編偽指令簡介

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


            (1)abort
            .abort 停止匯編
            (2)align
            .align absexpr1,absexpr2
            以某種對齊方式,在未使用的存儲區(qū)域填充值. 第一個值表示對齊方式,4, 8,16或32. 第二個表達式值表示填充的值.
            (3)if...else...endif
            .if
            .else
            .endif: 支持條件預編譯
            (4)include
            .include "file": 包含指定的頭文件, 可以把一個匯編常量定義放在頭文件中
            (5)comm
            .comm symbol, length:
            在bss段申請一段命名空間,該段空間的名稱叫symbol, 長度為length. Ld連接器在連接
            會為它留出空間
            (6)data
            .data subsection: 說明接下來的定義歸屬于subsection數據段
            (7)equ
            .equ symbol, expression: 把某一個符號(symbol)定義成某一個值(expression).該
            指令并不分配空間
            (8)global
            .global symbol: 定義一個全局符號, 通常是為ld使用
            (9)ascii
            .ascii "string": 定義一個字符串并為之分配空間
            (10)byte
            .byte expressions: 定義一個字節(jié), 并為之分配空間
            (11)short
            .short expressions: 定義一個短整型, 并為之分配空間
            (12)int
            .int expressions: 定義一個整型,并為之分配空間
            (13)long
            .long expressions: 定義一個長整型, 并為之分配空間
            (14)word
            .word expressions: 定義一個字,并為之分配空間, 4 bytes
            (15)macro/endm
            .macro: 定義一段宏代碼, .macro表示代碼的開始, .endm表示代碼的結束, .exitm
            跳出宏, 示例如下:
            .macro SHIFTLEFT a, b
            .if /b < 0
            mov /a, /a, ASR #-/b
            .exitm
            .endif
            mov /a, /a, LSL #/b
            .endm
            (16)req
            name .req register name: 為寄存器定義一個別名
            (17)code
            .code [16|32]: 指定指令代碼產生的長度, 16表示Thumb指令, 32表示ARM指令
            (18)ltorg
            .ltorg: 表示當前往下的定義在歸于當前段,并為之分配空間

            注:PC寄存器長轉移

            三.ARM GNU專有符號
            (1)@ 表示注釋從當前位置到行尾的字符.
            (2)# 注釋掉一整行.
            (3); 新行分隔符.

            四. 操作碼
            (1)NOP: nop 空操作, 相當于MOV r0, r0
            (2)LDR: ldr , = 相當于PC寄存器或其它寄存器的長轉移
            (3)ADR: adr




            關鍵詞: ARMGNU匯編偽指

            評論


            技術專區(qū)

            關閉