一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GNU arm 匯編偽指令詳解

林曉東 ? 來源:愛你沒話說 ? 作者:愛你沒話說 ? 2022-06-18 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

所有的偽指令都是以 . 開頭命令,然后剩下的命名通常是小寫字母,比如 .section .type

.section

格式:.section name [, "flags "[, %type [,flag_specific_arguments ]]]

flags:

The optional flags argument is a quoted string which may contain any combination ofthe following characters:

a section is allocatable
w section is writable
x section is executable
M section is mergeable
S section contains zero terminated strings
G section is a member of a section group
T section is used for thread-local-storage

type:

The optional type argument may contain one of the following constants:

progbits:section contains data

nobits: section does not contain data (i.e., section only occupies space)

note: section contains data which is used by things other than the program

init_array:section contains an array of pointers to init functions

fini_array:section contains an array of pointers to finish functions

preinit_array:section contains an array of pointers to pre-init functions

實(shí)例:

.section .stack, "aw", %nobits /* 命名一個(gè)”.stack"段, 該段具有可分配和可寫屬性,該段不包含數(shù)據(jù),該段用于保存堆棧值 */

.size

格式:.size name , expression

This directive sets the size associated with a symbol name. The size in bytes is computedfrom expression which can make use of label arithmetic. This directive is typically used toset the size of function symbols.

.type

This directive is used to set the type of a symbol.

格式有多種形式,如下:

.type STT_
.type ,#
.type ,@
.type ,@
.type ,%
.type ,""

The types supported are:

STT_FUNC

function

Mark the symbol as being a function name.

STT_GNU_IFUNC

gnu_indirect_function

Mark the symbol as an indirect function when evaluated during reloc processing.
(This is only supported on Linux targeted assemblers).

STT_OBJECT

object

Mark the symbol as being a data object.

STT_TLS

tls_object

Mark the symbol as being a thead-local data object.

STT_COMMON

common

Mark the symbol as being a common data object.

STT_NOTYPE

notype

Does not mark the symbol in any way. It is supported just for completeness.

例子1

.section .text.Reset_Handler
.type Reset_Handler, %function Reset_Handler:

ldr sp, =_estack /* set stack pointer */

bl entry

bx lr

.size Reset_Handler, .-Reset_Handler

例子2

.section .text.Reset_Handler
.type Reset_Handler, STT_FUNC Reset_Handler:

ldr sp, =_estack /* set stack pointer */

bl entry

bx lr

.size Reset_Handler, .-Reset_Handler

例子3

.global g_pfnVectors .section

.isr_vector,"a",%progbits

.type g_pfnVectors, %object ;聲明一個(gè) object 對(duì)象

.size g_pfnVectors, .-g_pfnVectors

g_pfnVectors: .word _estack

.word Reset_Handler

.word NMI_Handler

.word HardFault_Handler

.word MemManage_Handler

.word BusFault_Handler

.word UsageFault_Handler

.global

.global makes the symbol visible to ld. If you define symbol in your partial program, itsvalue is made available to other partial programs that are linked with it. Otherwise, symboltakes its attributes from a symbol of the same name from another file linked into the sameprogram.

.global 用于聲明全局變量,是其讓ld可見。

.word

在當(dāng)前地址放一個(gè) 32bit 的值

g_pfnVectors: .word _estack

.word Reset_Handler

.word NMI_Handler

.word HardFault_Handler

上面的代碼表示,在連續(xù)相連的地址上,依次放各中斷服務(wù)函數(shù)指針

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650580
  • GNU
    GNU
    +關(guān)注

    關(guān)注

    0

    文章

    143

    瀏覽量

    17880
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RISC-V和ARM有何區(qū)別?

    與RISC-VARM是一種精簡(jiǎn)指令集(RISC),以該指令集為基礎(chǔ)的處理器通常被稱為ARM芯片,它在全球范圍內(nèi)得到了極為廣泛的應(yīng)用。而RISC-V也是精簡(jiǎn)指令集,是美國(guó)加
    的頭像 發(fā)表于 06-24 11:38 ?908次閱讀
    RISC-V和<b class='flag-5'>ARM</b>有何區(qū)別?

    Arm產(chǎn)品命名體系的演變

    Arm 首席執(zhí)行官 Rene Haas 宣布 Arm 推出新的產(chǎn)品命名體系后,本文將為你詳解新的計(jì)算平臺(tái)名稱,以及新命名體系內(nèi)的新 IP 名稱標(biāo)識(shí)。
    的頭像 發(fā)表于 06-19 10:38 ?419次閱讀
    <b class='flag-5'>Arm</b>產(chǎn)品命名體系的演變

    步進(jìn)電機(jī)控制指令詳解

    這些指令主要是針對(duì)用 PLC 直接聯(lián)動(dòng)伺服放大器,目的是可以不借助其他擴(kuò)展設(shè)備(例如1GM 模塊)來進(jìn)行簡(jiǎn)單的點(diǎn)位控制, 使用這些指令時(shí)最好配合三菱的伺服放大器 (如 MR-J2)。然而,我們也可以用這些指令來控制步進(jìn)電機(jī)的運(yùn)行
    的頭像 發(fā)表于 06-12 10:33 ?744次閱讀
    步進(jìn)電機(jī)控制<b class='flag-5'>指令</b><b class='flag-5'>詳解</b>

    arm指令速查手冊(cè)

    ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),該企業(yè)設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的 RISC 處理器、相關(guān)技術(shù)及軟件。技術(shù)具有性能高、成本低和能耗省的特點(diǎn),適用于多種領(lǐng)域,比如嵌入控制、消費(fèi)/教育類多媒體、DSP 和移動(dòng)式應(yīng)用等。
    發(fā)表于 06-05 17:13 ?0次下載

    第八章 啟動(dòng)文件詳解

    本章講解了W55MH32的啟動(dòng)文件,其由匯編編寫,系統(tǒng)上電后首執(zhí)行,完成初始化堆棧、中斷向量表、配置系統(tǒng)時(shí)鐘等工作,還介紹了常用ARM匯編指令及代碼結(jié)構(gòu)。
    的頭像 發(fā)表于 05-22 16:52 ?1618次閱讀
    第八章 啟動(dòng)文件<b class='flag-5'>詳解</b>

    RISC-V基礎(chǔ)指令詳解

    RISC-V中定義了六種指令類型,其中包括 R型指令 : 用于寄存器與寄存器之間算數(shù)運(yùn)算的指令 I型指令 : 用于寄存器和立即數(shù)算術(shù)運(yùn)算和讀存儲(chǔ)器操作的
    發(fā)表于 12-29 18:47

    一文詳解Arm架構(gòu)Armv9.6-A中的最新功能

    Arm CPU 是當(dāng)今人工智能 (AI) 賦能軟件的關(guān)鍵,它可解釋、處理和執(zhí)行指令Arm 指令集架構(gòu) (ISA) 作為硬件和軟件的接口,指示處理器做什么和怎么做。
    的頭像 發(fā)表于 12-17 10:22 ?3501次閱讀
    一文<b class='flag-5'>詳解</b><b class='flag-5'>Arm</b>架構(gòu)Armv9.6-A中的最新功能

    了解和使用GNU Radio軟件的功能并制作藍(lán)牙抓包器

    背景 在上一小節(jié)中,我們簡(jiǎn)單介紹和使用了GNU Radio軟件的基礎(chǔ)功能和模塊,同時(shí)通過GNU Radio Companion(GRC)創(chuàng)建了簡(jiǎn)單的流程圖,展示了信號(hào)生成、處理和輸出的流程。最后通過
    的頭像 發(fā)表于 11-15 16:10 ?1841次閱讀
    了解和使用<b class='flag-5'>GNU</b> Radio軟件的功能并制作藍(lán)牙抓包器

    ARM匯編語(yǔ)言工具

    電子發(fā)燒友網(wǎng)站提供《ARM匯編語(yǔ)言工具.pdf》資料免費(fèi)下載
    發(fā)表于 11-06 09:12 ?2次下載
    <b class='flag-5'>ARM</b><b class='flag-5'>匯編</b>語(yǔ)言工具

    GNU構(gòu)建裸機(jī)系統(tǒng)

    基于AT91SAM7S平臺(tái),介紹裸機(jī)開發(fā),以閃燈為藍(lán)本,涉及匯編、鏈接、C/C++、中斷等。   無處不在的ARM處理器家族得到了GNU C/C++工具鏈的良好支持。雖然許多在線和印刷資源關(guān)注
    發(fā)表于 10-16 17:34 ?0次下載

    RISC-V和arm指令集的對(duì)比分析

    RISC-V和ARM指令集是兩種不同的計(jì)算機(jī)指令集架構(gòu),它們?cè)诙鄠€(gè)方面存在顯著的差異。以下是對(duì)這兩種指令集的詳細(xì)對(duì)比分析: 一、設(shè)計(jì)理念 RISC-V :RISC-V的設(shè)計(jì)理念是簡(jiǎn)化
    發(fā)表于 09-28 11:05

    ARM處理器的指令集包括哪些

    ARM處理器的指令集是一個(gè)龐大而復(fù)雜的系統(tǒng),它涵蓋了多種類型的指令,用于實(shí)現(xiàn)數(shù)據(jù)處理、程序控制、內(nèi)存訪問等多種功能。
    的頭像 發(fā)表于 09-10 11:15 ?1549次閱讀

    ARM處理器概述和發(fā)展歷程

    ARM處理器是一種基于RISC(精簡(jiǎn)指令集計(jì)算機(jī))架構(gòu)的高性能微處理器,由英國(guó)公司ARM(Advanced RISC Machines)開發(fā)和授權(quán)。它以其低功耗、低成本和高性能的特點(diǎn),在移動(dòng)設(shè)備
    的頭像 發(fā)表于 09-10 11:07 ?2005次閱讀

    RISC-V匯編語(yǔ)言

    對(duì)匯編程序員或者編譯器的編寫者來說通常很有用。這類指令在巧妙配置常規(guī)指令的基礎(chǔ)上實(shí)現(xiàn),稱為偽指令。上面兩張圖中列出了 RISC-V偽指令,前
    發(fā)表于 08-19 18:07

    RISC-V基礎(chǔ)整數(shù)指令

    指令格式也能從一些方面說明RISC-V更簡(jiǎn)潔的ISA設(shè)計(jì)能提高提高性能功耗比。首先,指令只有六種格式,并且所有的指令都是32位長(zhǎng),這簡(jiǎn)化了指令解碼。
    發(fā)表于 07-27 22:25