計算機底層入門 05 匯編學習環境通用寄存器內存

2.3 匯編學習環境


我們通過上一章筆記,得知 計算機好像 只會通過位運算 進行 數字的加法。

而機器語言的魅力就是 位運算,解析規則。它們也都是通過 電路 來進行實現的。這就是 計算機最底層的本質了!!!

  • 匯編語言

所謂的匯編語言,不就是 通過助記符,來替代我們的 二進制嘛。只是為了 簡化 我們的操作。而被發明出來的。
在這里插入圖片描述
32 位 和 64位 的本質架構區別不大,只是尋址能力得到了增強。

在這里插入圖片描述
目前 學習匯編 其實不需要什么 IDE 去寫代碼寫程序了。而是 直接 下載 反匯編 工具 就可以。比如 OD、CE、x64dbg 這些。當然 搭配 VC++6.0 食用更佳。


2.4 通用寄存器(可以存儲任何的值)

存儲數據的過程:CPU --> 內存 --> 硬盤

32 位 CPU :8 16 32

64 位 CPU :8 16 32 64

現在的 操作系統其實都是向下兼容的!也就是說 32 位 的軟件有很多很多呀。但是 都可以 運行在 64 位的系統上。

  • 32位的通用寄存器 只有 8個
    在這里插入圖片描述

存值的范圍只有:0 ~ FFFF FFFF

計算機如果向寄存器里存值,怎么存 ?

答:mov指令 直接 就能 存。

mov 目標地址,存儲的數值
mov 目標地址,被傳輸的地址
mov 目標寄存器,存儲的數值
mov 目標寄存器,被傳輸的寄存器

不同的寄存器(存儲的數據寬度也不同)

32位16位8位
EAXAXAL(AX的低八位)
EBXBXBL (BX的低八位)
ECXCXCL (CX的低八位)
EDXDXDL (DX的低八位)
ESPSPAH(AX的高八位)
EBPBPBH (BX的高八位)
ESISICH(CX的高八位)
EDIDIDH (DX的高八位)

ESP:通常存儲棧頂的地址
EBP:通常存儲棧底的地址
EIP:通常存儲的是 調用的 CALL 的地址。(跳轉地址)


2.4 內存

寄存器是很小的,不夠用。所以說,我們的數據怎么存儲呢?就誕生了一個東西,叫做 內存

我們規定每個應用程序進程 其實 都可以 使用 4GB 的內存空間。(也被我們稱為 虛擬內存)但實際上我們并不能用那么多的內存空間。所以相當于 空頭支票。

內存地址:其實就是 為我們的每一塊內存 起的一個名字。方便我們找到它。

尋址能力:就是能夠 找到多大 范圍的 地址。x86(32位) 能夠找到 0x FFFF FFFF 的地址。 這其實 不算 龐大。

在這里插入圖片描述
32 位 內存地址的數量是 FFFF FFFF + 1 = 4,294,967,297 個地址。

一個地址 對應著 一個 八位的 二進制串。也就是說 一個地址 相當于 一個字節。

所以理論上 能存 4,294,967,297 /1024 /1024 /1024 = 4GB

所以我們才說,32位 理論上 4GB 就是它的極限。

  • x64 位尋址能力 和 極限

x64 位尋址能力:0 - 0xFFFF FFFF FFFF FFFF
1,152,921,504,606,846,976 * 16 個內存地址。

x64 的 極限:17,179,869,184 GB

在這里插入圖片描述
其實指針是什么呢?就是用來存儲 內存地址的 類型變量。或指向內存地址的東西。是方便我們 操作 內存地址和其值的。

當你學會了 這個 底層,你會發現 指針 很容易!

比如說:我們存儲的數據一般情況下,沒有特別小的數據類型,可以小到 一個字節的。當然 JAVA有個 Byte 類型。如果 超過了 一個字節的類型,它在 內存中 怎么存儲呢?


根據連續的內存空間,進行存儲。因為 我們說 一個內存地址只對應一個 字節的 內存空間。那么4字節的 類型數據,我們就需要用到 4個 連續的內存空間 來進行 存儲。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

最標準mov代碼:mov dword ptr ds:[內存地址]

byte、word、dword:數據寬度

ptr:相當于 Type類型

  1. CS (Code Segment) 代碼段

  2. DS (Data Segment) 數據段

  3. ES (Extra Segment) 附加段

  4. SS (Stack Segment) 棧段

  5. FS:(Flag segment) 標志段寄存器

  6. GS:(Global segment) 全局段寄存器

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

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

相關文章

Java學習---Spring及其衍生(上)

在 Java 開發領域,Spring 生態占據著舉足輕重的地位。從最初的 Spring 框架到后來的 SpringBoot、SpringMVC 以及 SpringCloud,每一個組件都在不同的場景下發揮著重要作用。本文將深入探討這幾個核心組件,包括它們的定義、原理、作用、優缺點…

LVGL應用和部署(個人開發嵌入式linux產品)

【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing 163.com】隨著經濟越來越走向常態化發展,將來的公司基本是兩個趨勢,一個是公司越做越大,越來越趨向于壟斷;另外…

CPU,減少晶體管翻轉次數的編碼

背景 以4比特為單位,共16個數。仔細思考狀態轉換過程中的晶體管翻轉次數。 0000 0001,1 0010,2 0011,1 0100,3 0101,1 0110,2 0111,1 1000,4 1001,1 1010&…

LLM 中的 溫度怎么控制隨機性的?

LLM 中的 溫度怎么控制隨機性的? 在LLM的解碼過程中,溫度(Temperature)通過調整token概率分布的“陡峭程度”來控制隨機性:溫度越低,概率分布越陡峭(高概率token的優勢越明顯),隨機性越低;溫度越高,分布越平緩(高低概率token的差異被縮小),隨機性越高。 溫度,…

freemodbus使用

文章目錄? **CubeMX配置**1. UART配置(RS485通信)2. Timer配置(RTU字符間隔檢測)3. GPIO配置(RS485方向控制)? **STM32F103 RS485 FreeModbus RTU 配置概覽****1?? CubeMX硬件配置****2?? FreeModb…

【Ansible】Ansible 管理 Elasticsearch 集群啟停

一、集群節點信息 通過 Ansible inventory 定義的集群節點分組如下:[es](Elasticsearch 節點) 192.168.100.150192.168.100.151192.168.100.152[logstash](Logstash 節點) 192.168.100.151[kibana](Kibana …

Effective Python 第15條 不要過分依賴給字典添加條目時所用的順序

引言:字典順序的重要性 在Python編程中,字典(dict)是一種常用的數據結構,用于存儲鍵值對。然而,字典的迭代順序問題常常困擾著開發者。從Python 3.7開始,字典保證了鍵的插入順序,這一…

事務隔離級別和傳播方式

事務隔離級別 事務隔離級別是數據庫系統中控制事務間相互影響程度的重要機制。不同的隔離級別在數據一致性保證和系統性能之間提供不同的權衡選擇。下面我將詳細解析四種標準隔離級別、它們能解決的問題以及可能存在的并發問題。 一、四種標準隔離級別 1. 讀未提交 (Read Uncom…

不同地區的主要搜索引擎工具

研究seo,想匯總一下不同國家的搜索引擎工具,順帶了解一下這些公司提供的服務。 韓國:NAVER——>LINE 日本: 我還不知道,如果你知道可以評論告訴我 俄羅斯:yandex yandex有點像本土化的google 搜索引擎 郵箱 網盤 在…

實操:AWS CloudFront的動態圖像轉換

概述 適用于 Amazon CloudFront 的動態圖像轉換(前身為無服務器圖像處理器),通過 Amazon CloudFront 的全球內容分發網絡(CDN)實現實時圖像處理。此 AWS 解決方案可幫助您優化視覺內容交付,同時顯著降低運營…

Spring Boot 實戰詳解:從靜態資源到 Thymeleaf 模板引擎

Spring Boot 憑借其 "約定大于配置" 的理念,極大簡化了 Java 應用開發流程。本文將從 Spring Boot 核心特性出發,詳細解析靜態資源映射規則、Thymeleaf 模板引擎的使用,并結合完整實戰案例,幫助開發者快速上手 Spring B…

docker的鏡像與推送

docker build# 1. 基本構建命令(使用當前目錄的 Dockerfile) docker build .# 2. 指定 Dockerfile 路徑和構建上下文 docker build -f /path/to/Dockerfile /path/to/build/context# 3. 為鏡像設置名稱和標簽 docker build -t my-image:latest .# 4. 設置…

計算機網絡學習----域名解析

在互聯網世界中,我們習慣通過域名(如www.example.com)訪問網站,而非直接記憶復雜的 IP 地址(如 192.168.1.1)。域名與 IP 地址之間的轉換過程,就是域名解析。它是互聯網通信的基礎環節&#xff…

構建高性能推薦系統:MixerService架構解析與核心實現

——深入剖析推薦服務的分層設計、工作流引擎與高可用策略 一、整體架構與分層設計 該推薦服務采用經典分層架構模式?7,各層職責清晰: ?HTTP接口層? 支持 GET/POST 請求解析,自動映射參數到 RcmdReq 協議對象統一錯誤處理:參…

【安全漏洞】隱藏服務器指紋:Nginx隱藏版本號配置修改與重啟全攻略

?? 隱藏服務器指紋:Nginx配置修改與重啟全攻略 你是否知道,默認情況下Nginx會在HTTP響應頭中暴露版本號?這個看似無害的Server: nginx/1.x.x字段,實則可能成為黑客的"藏寶圖"。今天我們就來揭秘如何通過簡單配置提升服務器安全性,并手把手教你完成Windows環境…

構建RAG智能體(2):運行狀態鏈

在現代AI應用開發中,如何讓聊天機器人具備記憶能力和上下文理解是一個核心挑戰。傳統的無狀態對話系統往往無法處理復雜的多輪對話場景,特別是當用戶需要提供多種信息來完成特定任務時。 本文就來討論一下如何利用runnable來編排更有趣的語言模型系統&a…

RPA認證考試全攻略:如何高效通過uipath、實在智能等廠商考試

rpa認證考試有什么作用?數字洪流席卷全球,企業效率之爭已進入秒級戰場。當重復性工作吞噬著創造力,RPA(機器人流程自動化)技術正以前所未有的速度重塑職場生態。財務對賬、報表生成、跨系統數據搬運……這些曾經耗費人…

淺析MySQL事務隔離級別

MySQL 的事務隔離級別定義了多個并發事務在訪問和修改相同數據時,彼此之間的可見性和影響程度。它解決了并發事務可能引發的三類核心問題: 臟讀: 一個事務讀取了另一個未提交事務修改的數據。不可重復讀: 一個事務內多次讀取同一行…

【Linux系統】基礎IO(上)

1. 深入理解"文件"概念1.1 文件的狹義理解狹義上的“文件”主要指存儲在磁盤上的數據集合。具體包括:文件在磁盤里:文件是磁盤上以特定結構(如FAT、ext4文件系統)保存的數據集合,由字節或字符序列構成。磁盤…

構建智能可視化分析系統:RTSP|RTMP播放器與AI行為識別的融合實踐

技術背景 隨著人工智能向邊緣側、實時化方向加速演進,視頻已從傳統的“記錄媒介”躍升為支撐智能感知與自動決策的關鍵數據入口。在安防監控、工業安全、交通治理等復雜應用場景中,行為識別系統的準確性和響應效率,越來越依賴于視頻源的時效…