arm64彙編篇-08記憶體分割槽及adrp指令
記憶體分割槽
程式碼區 特點: 可讀可寫可執行
棧區域 放參數和區域性變數
堆區域 動態申請 可讀可寫
全域性: 可讀可寫
常量區: 只讀!
adrp指令
1)建立專案在mian 檔案中寫個方法然後執行此方法在彙編模式除錯斷點。詳細操作
將debug -> Debug Overflow -> Always Show DisAssembly 選中執行檢視混編程式碼。如果想恢復再點下就可以了.
2) 得到以下介面
3)原理 adrp操作步驟adrp x0, 1
1. 將1的值,左移12位 1 0000 0000 0000 == 0x1000
2.將PC暫存器的低12位清零 0x1045228b0 ==> 0x104522000
3.將將1 和 2 的結果相加 給 X0 暫存器!!
注:地址為pc暫存器左邊的地址,adrp是找出要獲取引數的地址範圍,然後下個pc暫存器執行的程式碼會定位到準確的實體地址。
指令區域
由於adrp的為範圍定址並不會精確到具體地址所以地址的最後三位,即12bit位為0是需要系統下一步執行的時候補上的。
根據cpu匯流排的計算規則12bit相當於12根匯流排器地址範圍為2的12次方即4KB。
相關推薦
arm64彙編篇-08記憶體分割槽及adrp指令
記憶體分割槽程式碼區 特點: 可讀可寫可執行棧區域 放參數和區域性變數堆區域 動態申請 可讀可寫全域性: 可讀可寫常量區: 只讀!adrp指令1)建立專案在mian 檔案中寫個方法然後執行此方法在彙編模式除錯斷點。詳細操作將debug -> Debug Overflow
arm64彙編篇-07cpsr狀態暫存器
狀態暫存器 CPU內部的暫存器中,有一種特殊的暫存器(對於不同的處理器,個數和結構都可能不同).這種暫存器在ARM中,被稱為狀態暫存器就是CPSR(current program status register)暫存器 CPSR和其他暫存器不一樣,其他暫存器是用來
JAVA虛擬機器:JVM記憶體分割槽及用途
Java虛擬機器在執行Java程式的過程中會把它所管理的記憶體劃分為若干個不同的資料區,這些區域都有各自的用途,以及建立和銷燬的時間,有的區域隨著虛擬機器程序的啟動而存在,有些區域則依賴使用者執行緒的啟動和結束而建立和銷燬。 Java虛擬機器所管理的記憶體將會包括以下幾個執
arm64彙編篇-06巢狀函式的彙編原理
x0x1概念:一個函式的引數系統是將其從x0到x7去賦值的,但是計算後的結果卻是返回到x0暫存器中,這樣便涉及到暫存器資料的保護。原理: 對公用的引數和返回值先做棧保護儲存起來,然後等要用的時候到對應的記憶體地址中取出來使用。例項:1.建立demo工程。2.在mian檔案中
C++ BSS段、資料段、程式碼段、堆與棧及五大記憶體分割槽
BSS段:BSS段(bss segment)通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。BSS是英文Block Started by Symbol的簡稱。BSS段屬於靜態記憶體分配。 資料段:資料段(data segment)通常是指用來存放程式中已
JVM記憶體模型及分割槽
Java虛擬機器在程式執行過程會把jvm的記憶體分為若干個不同的資料區域來管理,這些區域有自己的用途,以及建立和銷燬時間。 jvm管理的記憶體區域包括以下幾個區域: 棧區: 棧分為java虛擬機器棧和本地方法棧 重點是Java虛擬機器棧,它是執行緒
Unity3D熱更新之LuaFramework篇[08]--熱更新原理及熱更伺服器搭建
前言 前面鋪墊了這麼久,終於要開始寫熱更新了。 Unity遊戲熱更新包含兩個方面,一個是資源的更新,一個是指令碼的更新。 資源更新是Unity本來就支援的,在各大平臺也都能用。而指令碼的熱更新在iOS平臺則是不被允許的(除了Lua)。 為了讓一套程式碼能在各個平臺都支援熱更,將遊戲的業務邏輯全面L
Qt入門之基礎篇 ( 一 ) :Qt4及Qt5的下載與安裝
mingw ins 第3版 點擊 調試 但我 關系 構建 eas 轉載請註明出處:CN_Simo. 導語: Qt是一個跨平臺的C++圖形界面應用程序框架。它提供給開發者建立圖形用戶界面所需的功能,廣泛用於開發GUI程序,也可用於開發非GUI程序。Qt很容易擴展,並
2014/08/23——OJ及相關站點打開速度非常慢,訓練計劃login直接error!
erro art family -s ted host 問題: use isp 問題: 這個問題存在已經將近一個星期了。剛開始時發現OJ及相關的站點有時候打開有點慢,那時候也沒在意,後來時快時慢的越來越頻繁;今天早上直接一直都打開非常慢(無論什麽時候。這樣的情況);訓練
python基礎篇08-文件操作
enc 進度 data- 內存 flush 文件操作方法 end 統一 存儲 文件操作基本流程 打開文件,得到文件句柄並賦值給一個變量; 通過句柄對文件進行操作 關閉文件 現有文件如下: 1 昨夜寒蛩不住鳴。 2 驚回千裏夢,已三更。 3 起來獨自繞階行。 4
Exchange 2016部署實施案例篇-08.Active Directory日常運維檢查
AD日常運維 活動目錄 AD巡檢 上一篇我介紹了Exchange的日常檢查操作,大家都知道Active Directory是微軟的基礎架構,也是Exchange的基礎架構,沒有Active Directory就搭建不了Exchange,今天給大家分享下Active Directory的日常檢查,希
第二篇 Python初識別及變量
路徑 lse 變量名 成功 登錄驗證 默認 方式 有變 初識 第一個Python程序 可以打開notepad或者其他文本編輯器,輸入:print("Hello Python!"),將文件保存到任意盤符下,後綴名是 .py 兩種python程序執行方式 1. 在終端裏執行代
python基礎篇 08 文件操作
基礎 就是 utf-8 tst 崩潰 磁盤 文件操作 rip tell 本節主要內容:1. 初識?件操作2. 只讀(r, rb)3. 只寫(w, wb)4. 追加(a, ab)5. r+讀寫6. w+寫讀7. a+寫讀(追加寫讀)8. 其他操作?法9. ?件的修改以及另?種
Java多線程系列---“基礎篇”08之 join()
spa www gif 怎麽 ... try run stack 通過 轉自:http://www.cnblogs.com/skywang12345/p/3479275.html (含部分修改) 概要 本章,會對Thread中join()方法進行介紹。涉及到的內容包括:
第二篇:Python安裝及環境變量的操作
系統變量 執行 第二篇 解釋 參數 配置 環境 配置環境 usr 1.配置環境變量方法在計算機-屬性-高級系統設置-高級-環境變量-系統變量-path中追加Python軟件包的路徑補充:各個變量值是用;分隔的 2.環境變量配置後,在cmd中可直接輸入python來運行Pyt
Parted磁碟分割槽及掛載
一、parted的用途及說明 概括使用說明: parted用於對磁碟(或RAID磁碟)進行分割槽及管理,與fdisk分割槽工具相比,支援2TB以上的磁碟分割槽,並且允許調整分割槽的大小。 GNU手冊說明: parted是一個用
【Web篇08】Web中MVC設計理念 & 經典三層架構 & 五大主流框架
一、Web的MVC設計理念和MVC框架: 之前在Web篇04中已經詳述了Servlet、TomCat、JSP和Web.xml之間的聯絡; (1)瀏覽器傳送請求到收到響應,簡要的過程如下: 瀏覽器傳送請求後,由Web.xml中規定的協議,進入TomCat中特定的Servlet,伺服器先
垃圾回收機制(GC) Java記憶體區域及物件
前言 上一篇文章Java記憶體區域及物件講述了Java記憶體執行時的各個部分,其中程式計數器、虛擬機器棧、本地方法棧3個區域隨執行緒生而生,隨執行緒滅而滅,在這幾個區域是不需要過多的考慮回收的問題的,因為方法結束或者執行緒結束時,記憶體自然就跟隨著回收了;而Java堆和方法區則不一樣,一個介面中的多個實
JVM記憶體模型及GC回收機制的相關理解
在面試中我們經常會被問道關於JVM的面試問題。我們來整理下 這篇不錯 這個可以讓你恍然大悟 1 JAVA記憶體模型初體驗 JVM記憶體模型: 1 堆 :物件 2 棧(本地方法棧,虛擬機器棧):引數列表、基本資料型別 3 方法區(包括常量池):類變數、常量、程式碼段(code sege