日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識你,還能領(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

實例:

.section .stack, "aw", %nobits /* 命名一個”.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 ;聲明一個 object 對象

.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)前地址放一個 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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6078

    文章

    45593

    瀏覽量

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

    關(guān)注

    0

    文章

    144

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    匯編程序段的定義介紹

    ; END偽指令標(biāo)志整個程序的結(jié)束。END語句下面書寫的任何代碼都不會被匯編。END后的標(biāo)號表示程序的入口地址,也就是匯編程序開始執(zhí)行的地方。 2 基本傳送指令 基本傳送
    發(fā)表于 11-21 08:19

    匯編語言的起源

    一、匯編語言是什么? 我們知道,CPU 只負(fù)責(zé)計算,本身不具備智能。你輸入一條指令(instruction),它就運行一次,然后停下來,等待下一條指令。 這些指令都是二進(jìn)制的,稱為操
    發(fā)表于 11-20 07:19

    RVMCU課堂「7」: 手把手教你玩轉(zhuǎn)RVSTAR—匯編程序篇

    相對于抽象層次更高的C/C++語言,匯編語言是一門抽象層次比較低的語言,面向的是最底層的硬件,直接使用處理器的基本指令。雖然現(xiàn)在大多數(shù)的程序設(shè)計已經(jīng)不再使用匯編語言,但是在一些特殊的場合,譬如底層
    發(fā)表于 10-31 08:46

    簡單的內(nèi)聯(lián)匯編介紹

    前言1、在程序中我們可以嵌入匯編直接對我們加入的硬件進(jìn)行相應(yīng)的操作 2、在RISC-V架構(gòu)中定義的CSR寄存器需要使用特殊的 CSR 指令進(jìn)行訪問,如果在 C/C++程序中需要使用 CSR 寄存器
    發(fā)表于 10-30 08:04

    RISC-V的工具鏈GCC內(nèi)聯(lián)匯編

    具體實現(xiàn)方法和步驟 在RISC-V架構(gòu)中定義的CSR寄存器需要使用特殊的CSR指令進(jìn)行訪問,如果C、C++程序中需要訪問CSR寄存器,只能使用內(nèi)嵌匯編指令的方法。在C、C++程序中嵌入匯編
    發(fā)表于 10-30 06:59

    采用匯編指示符來使用自定義指令

    、采用.insn匯編指示符實現(xiàn)risc-v自定義指令。這種方式可以指定工具來選擇寄存器,也可以自己選定寄存器。指令格式如下(引自gnu 匯編
    發(fā)表于 10-28 06:02

    蜂鳥自定義指令軟件講解和內(nèi)聯(lián)匯編(一)

    為將緩存中的數(shù)據(jù)寫入內(nèi)存中;rowsum為累加指令,將結(jié)果寫回目的寄存器。 RISC-V架構(gòu)中的匯編代碼中用戶自定義指令需要通過偽指令.insn來實現(xiàn), 對于R類型
    發(fā)表于 10-24 10:51

    GCC內(nèi)聯(lián)匯編

    GCC內(nèi)聯(lián)匯編 在蜂鳥內(nèi)核的NICE協(xié)處理器擴(kuò)展demo的insn.h文件中存在下面一段指令,用于定義對協(xié)處理器調(diào)用指令,demo中協(xié)處理器支持三條指令:lbuf從內(nèi)存中l(wèi)oad數(shù)據(jù)
    發(fā)表于 10-24 07:46

    通過內(nèi)聯(lián)匯編調(diào)用乘法指令mulh\\mulhsu\\mulhu

    1.蜂鳥E203內(nèi)核支持的乘法指令有四種(不含融合指令),分別為mul、mulh、mulhu與mulhsu。它們的匯編語言格式如下: mulrd,rs1, rs2 將兩個32位整數(shù)相乘,取低
    發(fā)表于 10-24 06:52

    NucleiStudio如何生成.verilog文件和.dasm文件,以及對.dasm文件中自定義指令匯編結(jié)果分析

    文件,以及對.dasm文件中自定義指令匯編結(jié)果分析。 一、如何生成.verilog和.dasm文件文件 項目右鍵選擇Properties 選擇C/C++ Build下面的Setting 更改
    發(fā)表于 10-24 06:33

    RISC-V指令集手冊中F指令部分

    單獨訪問,frrm/fsrm偽指令用于單獨訪問fcsr的frm域,frflags/fsflags偽指令可以單獨訪問fcsr的fflags域。fcsr中31-8位進(jìn)行保留,以便后續(xù)擴(kuò)展,7-5位為舍入模式
    發(fā)表于 10-22 08:18

    Whetstone代碼涉及的浮點指令匯編分析

    對benchmark中的whetstone進(jìn)行代碼分析,通過反匯編統(tǒng)計所出現(xiàn)的浮點指令,共有26種,如下 特點是只涉及單精度的浮點指令,并且存在有浮點Load/Store的壓縮指令
    發(fā)表于 10-22 08:11

    gcc工具鏈無法匯編硬件浮點指令fsqrt問題

    團(tuán)隊在項目推進(jìn)過程中發(fā)現(xiàn),Linux環(huán)境下,math庫中的sqrt()函數(shù)無論是在浮點數(shù)的gcc工具鏈中還是整數(shù)的gcc工具鏈中,綜合的結(jié)果都是以整數(shù)指令來模擬。 若果想要進(jìn)一步地節(jié)約時間,我們
    發(fā)表于 10-20 06:19

    ARM入門學(xué)習(xí)方法分享

    )架構(gòu)。學(xué)習(xí)ARM的開始可以從學(xué)習(xí)RISC和CISC架構(gòu)的基礎(chǔ)知識開始。 二、學(xué)習(xí)匯編語言:ARM架構(gòu)的核心是匯編語言。學(xué)習(xí)匯編語言能夠幫
    發(fā)表于 07-23 10:21

    第八章 啟動文件詳解

    本章講解了W55MH32的啟動文件,其由匯編編寫,系統(tǒng)上電后首執(zhí)行,完成初始化堆棧、中斷向量表、配置系統(tǒng)時鐘等工作,還介紹了常用ARM匯編指令及代碼結(jié)構(gòu)。
    的頭像 發(fā)表于 05-22 16:52 ?2318次閱讀
    第八章 啟動文件<b class='flag-5'>詳解</b>
    丽水市| 陇南市| 商都县| 赤峰市| 汉中市| 阳城县| 古田县| 赣榆县| 图们市| 望都县| 宁乡县| 石屏县| 鸡东县| 白城市| 中超| 松江区| 黑河市| 贵州省| 长宁区| 阿拉善左旗| 林州市| 昌乐县| 资溪县| 湖州市| 高邑县| 辰溪县| 古田县| 德安县| 耿马| 凉城县| 娱乐| 双牌县| 靖边县| 岱山县| 昌宁县| 新干县| 温泉县| 德惠市| 湘潭市| 郴州市| 石渠县|