匯編常用語法

  1. GNU匯編語句

    [lable:] instruction [@comment]

    lable 表示標號,表示地址位置,可選.

    instruction即指令,也就是匯編指令或偽指令。

    comment 就是注釋內容。

  2. 用戶使用.section 偽操作來定義一個段,匯編系統預定義了一些段名:

.text :代碼段,只讀的代碼信息。

.data :初始化的數據段,初始化的全局變量和局部靜態變量。

.bss :未初始化的數據段,未初始化的全局變量和局部靜態變量,使用動態的變量來初始化。

.rodata :只讀數據段,const修飾的static 變量都,以及一些字面量。

我們當然可以自己使用.section 來定義一個段,每個段以段名開始,以下一段名或者文件結尾結束,比如:

.section .section_name @定義了一個testsection段。

3. 偽指令:對會匯編過程進行控制的代碼,該類指令并不是可執行指令,沒有機器代碼,只用于匯編過程中為匯編陳旭提供匯編信息。相當于c語言關鍵字,匯編代碼種全大寫的很可能是偽指令,或者宏。

(1)偽指令只會存在匯編語言中,在其他代碼中叫語句。

(2)偽指令,不是可執行指令,不會產生機器代碼,不會占用ROM空間,只用于匯編過程中為匯編程序提供匯編信息。

例如,.global,.byte, .section都是偽指令

4. 匯編中的函數定義:

函數名:函數體返回語句5. 常見的指令:
處理器(cpu)內部數據傳輸指令:
指令目的描述
movR0R1將R1復制到R0
MRSR0CPSR將特殊寄存器CPSR里面的數據復制到R0中
MSRCPSRR1將R1里面的數據復制到特殊寄存器CPSR中

存儲器訪問指令:外設寄存器屬于存儲器的一種,

指令描述
LDR Rd, [Rn, #offset]從存儲器Rn+offset的位置讀取數據存放到Rd中。
STR Rd, [Rn, #offset]將Rd中的數據寫入到存儲器中的Rn+offset位置。

壓棧和出棧指令:

指令描述
PUSH <req list>將寄存器列表存入棧中。
POP <req list>從棧中恢復寄存器列表。

跳轉指令:

(1)直接跳轉指令B,BL,BX等

(2)直接向PC寄存器里面寫入數據。

算術運算指令:

ADD, ADC (帶進位),SUB(減法),MUL(乘法),UDIV(無符號除法),SDIV(有符號除法)

邏輯運算指令:與或非異或。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78478.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

terraform resource創建了5臺阿里云ecs,如要使用terraform刪除其中一臺主機,如何刪除?

在 Terraform 中刪除阿里云 5 臺 ECS 實例中的某一臺&#xff0c;具體操作取決于你創建資源時使用的 多實例管理方式&#xff08;count 或 for_each&#xff09;。以下是詳細解決方案&#xff1a; 方法一&#xff1a;使用 for_each&#xff08;推薦&#xff09; 如果創建時使…

pycharm terminal 窗口打不開了

參考添加鏈接描述powershell.exe改為cmd.exe發現有一個小正方形&#xff0c;最大化可以看見了。

百度「心響」:左手“多智能體”右手“保姆級服務”,C端用戶能看懂這技術告白嗎?

——當技術名詞撞上“傻瓜式”需求&#xff0c;誰是贏家&#xff1f; 「多智能體」是什么&#xff1f;用戶&#xff1a;不重要&#xff0c;能一鍵搞定就行 百度最新推出的多智能體平臺“心響”&#xff0c;號稱能用自然語言交互一鍵托管復雜任務。 從旅游攻略到法律咨詢&#x…

57認知干貨:AI機器人產業

機器人本質上由可移動的方式和可交互萬物的機構組成,即適應不同環境下不同場景的情況,機器人能夠做到根據需求調整交互機構和移動方式。因此,隨著人工智能技術的發展,AI機器人的產業也將在未來逐步從單一任務的執行者,發展為能夠完成復雜多樣任務的智能體。 在未來的社會…

在兩個bean之間進行數據傳遞的解決方案

簡介 在日常開發中&#xff0c;在兩個bean之間進行數據傳遞是常見的操作&#xff0c;例如在日常開發中&#xff0c;將數據從VO類轉移到DO類等。在兩個bean之間進行數據傳遞&#xff0c;最常見的解決方案&#xff0c;就是手動復制&#xff0c;但是它比較繁瑣&#xff0c;充斥著…

基于開閉原則優化數據庫查詢語句拼接方法

背景 在開發實踐中&#xff0c;曾有同事在實現新功能時&#xff0c;因直接修改一段數據庫查詢條件拼接方法的代碼邏輯&#xff0c;導致生產環境出現故障。 具體來看&#xff0c;該方法通過在函數內部直接編寫條件判斷語句實現查詢拼接&#xff0c;盡管從面向對象設計的開閉原…

QT開發工具對比:Qt Creator、Qt Designer、Qt Design Studio

前端開發工具—Qt Designer Qt Designer是Qt框架的一部分&#xff0c;是一個圖形用戶界面設計工具。它允許開發者通過可視化方式設計和布局GUI組件&#xff0c;而無需手動編寫UI代碼。設計完成后&#xff0c;Qt Designer生成UI文件&#xff08;通常以.ui為擴展名&#xff09;&…

0基礎 | STM32 | TB6612電機驅動使用

TB6612介紹及使用 單片機通過驅動板連接至電機 原因&#xff1a;單品機I/O口輸出電流I小 驅動板&#xff1a;從外部引入高電壓&#xff0c;控制電機驅動 電源部分 VM&#xff1a;電機驅動電源輸入&#xff0c;輸入電壓范圍建議為3.7&#xff5e;12V GND&#xff1a;邏輯電…

【操作系統】死鎖

1. 定義 死鎖是指兩個或多個進程&#xff08;或線程&#xff09;在執行過程中&#xff0c;因爭奪資源而造成的一種僵局&#xff0c;每個進程都無限期地等待其他進程釋放它們所持有的資源。在這種情況下&#xff0c;沒有任何進程能夠繼續執行&#xff0c;除非有外部干預。 2. …

C++入門?關于類的一些特殊知識點

涉及的關于類中的默認成員函數的知識點可以看我的這篇博客哦~ C入門必須知道的知識?類的默認成員函數&#xff0c;一文講透運用 目錄 初始化列表 類型轉換 static成員 友元 內部類 匿名對象 對象拷貝時的一些編譯器的優化 初始化列表 我們知道類中的構造函數的任務是完…

只用Prettier進行格式化項目

1.下載Prettier插件&#xff0c;禁用ESlint 2.在項目根目錄新建.prettierrc文件 {"singleQuote": true,"jsxSingleQuote": true,"printWidth": 100,"trailingComma": "none","tabWidth": 2,"semi": f…

XXL-TOOL v1.4.0 發布 | Java工具類庫

Release Notes 1、【新增】JsonRpc模塊&#xff1a;一個輕量級、跨語言遠程過程調用實現&#xff0c;基于json、http實現&#xff08;從XXL-JOB底層通訊組件提煉抽象&#xff09;。2、【新增】Concurrent模塊&#xff1a;一系列并發編程工具&#xff0c;具備良好的線程安全、高…

基于LVGL的登錄界面設計

目錄 一、演示 二、前言 三、部件知識 3.1 圖片按鈕部件 3.1.1 圖片按鈕部件的組成 3.1.2 圖片的來源 3.1.3 添加/清除的狀態 3.1.4 圖片按鈕部件 API 函數 3.2 鍵盤部件(lv_keyboard) 3.2.1 鍵盤部件的組成 3.2.2 鍵盤部件的相關知識 3.2.2.1 鍵盤部件模式 3.…

S3 跨賬戶復制:增強云中的災難恢復計劃

您準備好提升您的云和 DevOps 技能了嗎&#xff1f; &#x1f425;《云原生devops》專門為您打造&#xff0c;我們精心打造的 30 篇文章庫&#xff0c;這些文章涵蓋了 Azure、AWS 和 DevOps 方法論的眾多重要主題。無論您是希望精進專業知識的資深專業人士&#xff0c;還是渴望…

線程與進程深度解析:從fork行為到生產者-消費者模型

線程與進程深度解析&#xff1a;從fork行為到生產者-消費者模型 一、多線程環境下的fork行為與線程安全 1. 多線程程序中fork的特殊性 核心問題&#xff1a;fork后子進程的線程模型 當多線程程序中的某個線程調用fork時&#xff1a; 子進程僅包含調用fork的線程&#xff1…

Circular Plot系列(五): circle plot展示單細胞互作

這是我們circle系列的最后一節&#xff0c;我想常見的弦圖是繞不開的&#xff0c;所以最后從前面介紹的circle plot思路&#xff0c;做一遍弦圖。其實前面的內容如果消化了&#xff0c;plot互作弦圖也就不成什么問題了。 效果如下&#xff1a; #cellchat提取互作結果&#xff…

(11)Vue-Router路由的詳細使用

本系列教程目錄&#xff1a;Vue3Element Plus全套學習筆記-目錄大綱 文章目錄 第2章 路由 Vue-Router2.1 Vue路由快速入門2.1.1 創建項目2.1.2 路由運行流程 2.2 傳遞參數-useRoute2.2.1 路徑參數-params1&#xff09;普通傳參2&#xff09;傳遞多個參數3&#xff09;對象方式傳…

react + antd 實現后臺管理系統

文章目錄 完整路由搭建Layout 和 Aside組件引入 AntdAside組件實現 項目效果圖 項目完整代碼地址 https://gitee.com/lyh1999/react-back-management 項目完整代碼地址 react依賴安裝 最好采用yarn 安裝 react-router 安裝依賴 配置路由 history模式 / // src/router/…

基于AWS Marketplace的快速解決方案:從選型到部署實戰

1. 引言&#xff1a;為什么選擇AWS Marketplace&#xff1f; 在數字化轉型的背景下&#xff0c;企業需要快速獲取成熟的軟件工具和服務以降低開發成本。AWS Marketplace 作為亞馬遜云科技的官方應用商店&#xff0c;提供超過萬款預配置的第三方和AWS原生解決方案&#xff0c;涵…

2021年第十二屆藍橋杯省賽B組C++題解

2021年第十二屆藍橋杯省賽B組C題解 關鍵詞&#xff1a;藍橋杯、省賽、題解、C、算法 一、個人見解 第十二屆藍橋杯省賽B組共有10道題目&#xff0c;包含5道填空題&#xff08;T1-T5&#xff09;和5道編程題&#xff08;T6-T10&#xff09;&#xff0c;總分150分。比賽時長4小…