匯編原理(二)寄存器——內存訪問

一個字 = 兩個字節

雙字

字節為8位

字為16位(看兩格)

雙子dword32位(看四格)

內存中字的存儲:

? ? ? ? 0地址單元中存放的字節型數據是多少?

? ? ? ? 0地址字單元中存放的字型數據是多少?

? ? ? ? 2地址字單元中存放的字節型數據是多少?

? ? ? ? 2地址單元中存放的字型數據是多少(0012。字型要考慮兩個字節)

? ? ? ? 1地址字單元中存放的字型數據是多少(124E)(單元和字單元有什么區別?

? ? ? ? 任何兩個地址連續的內存單元,N號單元和N+1號單元,可以將他們看成兩個內存單元,也可以看成一個地址為N的字節單元中的高位字節單元和低位字節單元

DS和 [ address?]:回過頭來看,這兩個玩意一定是成對出現的,才能唯一確定一個物理地址

? ? ? ? DS(data)寄存器用來存放要訪問的數據的段地址

? ? ? ? mov功能:1.(1)將數據直接送入寄存器(2)將一個寄存器中的內容送入另一個寄存器。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 除此之外,mov還可以將一個內存單元中的內容送入一個寄存器

? ? ? ? 對上面指令的解釋:

? ? ? ? ????????1.先說明:[ ... ]中存放偏移地址,DS中存放段地址

? ? ? ? ????????2.10000H表示1000:0(段地址:偏移地址)(為什么能唯一確定只能是這個比值?

? ? ? ? ????????3.將段地址1000H放入ds

? ? ? ? ????????4.用mov al,[0]完成傳送( [? ] 中只用說明偏移地址,段地址默認放在ds中)

? ? ? ? 那能否直接mov ds, 1000H?這樣寫指令合法嗎?

? ? ? ? ? ? ? ? 不行,不能將數據直接送入段寄存去,數據只能送入通用寄存器(硬件設計問題)

? ? ? ? ? ? ? ? 數據 -> 通用寄存器 -> 段寄存器 (間接)

? ? ? ? 這樣就完成了將內存單元中的數據送入寄存器。

? 那如何將數據送入內存單元?
? ? ? ? ? ? ?

????????????????放到一起對比一下

????????

? ? ? ? 有例題:配置好環境后需要自己實現

mov、add、sub指令:

? ? ? ??推測:mov 寄存器,段寄存器 也是正確的

? ? ? ? add和sub同理:

數據段:?????????

? ? ? ? 在內存和寄存器之間傳送字型數據時,高地址單元和高8位寄存器、低地址單元和低8位寄存器相對應

棧(Fist In Last Out):

push和pop:入棧和出棧都是以字為單位

? ? ? ? push ax : 將寄存器ax中的數據送入棧中;

? ? ? ? pop ax : 從棧頂取出數據送入ax

cpu怎么知道一段內存空間被當作棧使用?如何知道那個單元時棧頂?

? ? ? ? 第一個問題:

? ? ? ? ????????有兩個寄存器:S(stack)S(段寄存器:記錄棧頂段地址)和SP(記錄棧頂偏移地址)

? ? ? ? ????????SS:SP就指向棧頂單元????????

????????????????任何一個時刻SS:SP指向棧頂(容易搞混)

? ? ? ? 第二個問題:

? ? ? ? ? ? ? ? push ax.? ? ? 該指令發生后,會(自動)進行SP = SP - 2;所以SS:SP將會指向新的棧頂

push的過程:

pop的過程:

? ? ? ? pop之后只會使SS:SP移動,但內存單元中的數據不會刪除,下次在push會對它進行覆蓋(刪不干凈)

? ? ? ? ? ? ? ? ? ? ? ?

棧頂越界的問題:(溢出攻擊)

棧和內存:棧就是內存空間的一部分

push和pop指令:

? ? ? ? ?比如段地址現在指向1000,那就將這個16進制數放入SS:SP所指向的位置? ? ??

? ? ? ? 棧操作都是以字為單位

??

模擬函數調用過程:

注意因為bx后入棧,所以一定要先出棧 ,對順序是有要求的

交換兩數的值:

????????????????對pop ax理解應該是:彈出最后一個值,將其賦值給ax

????????執行push和pop指令與mov指令不同,mov執行傳送指令只需要一步操作,而執行push和pop指令卻需要兩部操作:執行push時:先改變SP,后向SS:SP處傳送;執行pop時,先讀取SS:SP處的數據,后改變SP。

棧段:

一個棧段最大可以設為多少?2的16次方

? ? ? ? ?對于數據段,將段地址放在DS中,對于代碼段,段地址放在CS中,對于棧段,將段地址放在SS中

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

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

相關文章

Secure Operation

文章目錄 Secure Summation OperationSecure Set Union Operation Secure Summation Operation 讓我們通過一個具體的例子來說明這個算法。 假設有三個數據擁有者 S1, S2 和 S3,他們分別持有以下值: S1 持有 value1 10S2 持有 value2 20S3 持有 val…

基坑氣膜:建筑工地環保新利器—輕空間

隨著城市化進程的加快,建筑行業的飛速發展帶來了嚴重的環境問題,如噪音和粉塵污染,給人們的生活帶來諸多不便。為了解決這些問題,建筑行業一直在探索更為環保和高效的施工方式。近年來,基坑氣膜技術逐漸嶄露頭角&#…

Audition 2024 for Mac/Win:音頻錄制與編輯的卓越之選

隨著數字媒體的不斷發展,音頻內容創作已經成為各行各業中不可或缺的一部分。無論是音樂制作、廣播節目、播客錄制還是影視配音,都需要高品質的音頻錄制和編輯工具來實現專業水準的作品。在這個充滿競爭的時代,要想在音頻創作領域脫穎而出&…

解線性方程組——最速下降法及圖形化表示 | 北太天元 or matlab

一、思路轉變 A為對稱正定矩陣, A x b Ax b Axb 求解向量 x x x這個問題可以轉化為一個求 f ( x ) f(x) f(x)極小值點的問題,為什么可以這樣: f ( x ) 1 2 x T A x ? x T b c f(x) \frac{1}{2}x^TAx - x^Tb c f(x)21?xTAx?xTbc 可…

ZooKeeper安裝

安裝Zookeeper 1、下載Zookeeper安裝包 打開鏈接選擇一個版本進行下載 https://zookeeper.apache.org/releases.html2、上傳Zookeeper安裝包到集群 輸入命令 scp apache-zookeeper-3.8.4-bin.tar.gz hadoop192.168.88.100:/tmp也可以使用xftp等上傳,物理機用u盤…

Python 網格變換之平移、旋轉、縮放、變換矩陣

網格變換 一、平移1.1、代碼示例1.2、結果示例二、旋轉2.1、代碼示例2.2、結果示例三、縮放3.1、代碼示例3.2、結果示例四、變換矩陣4.1、代碼示例4.2、結果示例一、平移 網格平移:將網格沿著特定的方向移動一段距離。 1.1、代碼示例

Android實現無線連接ADB調試

無線連接ADB(Android Debug Bridge)進行調試,是一種方便的遠程調試方式,尤其適合在沒有USB線或者設備物理接觸不便的情況下使用。下面是如何設置無線ADB調試的步驟: 1. 準備工作 確保你的電腦和Android設備連接在同一局域網(Wi-Fi)下。 2. 在Android設備上操作 允許…

hadoop其中一個節點壞了,用其他節點克隆的教程+datanode正常顯示,但master只有1個livenodes

如果一個slave出了非常棘手的問題,還是用其他slave克隆吧,很快的。 克隆教程: 1.克隆后只需要:sudo gedit /etc/network/interfaces,把ip地址改好。 2.ssh不需要重新設置,其他東西也都不需要重新進行設置…

linux日常運維2

下載linux離線安裝包---- 利用 Downloadonly 插件下載 RPM 軟件包及其所有依賴包 1. 先找個可以上網的linux操作系統,這里是以centos7操作系統為例,如果要使用centos6就先安裝一個centos6的系統,然后讓他可以上網,后面步驟如下 a.…

《精通Stable Diffusion AI繪畫:基礎技巧、實戰案例與海量資源一站式學習》

隨著人工智能技術的迅猛發展,AI繪畫已經成為了一個炙手可熱的話題。特別是在設計、藝術和創意領域,AI繪畫工具的出現無疑為創作者們帶來了更多的可能性和便利。《Stable Diffusion AI繪畫從提示詞到模型出圖》這本書,就是一本深入解析Stable …

打包遷移Python env環境

打包遷移Python env環境 平常工作中可能遇到python虛擬環境遷移的場景,總結了如下幾個方法。適用于同架構、相同類型系統之間的python虛擬環境遷移。 方法一:使用pip freeze和requirements.txt 這種方法將當前環境中的所有包記錄到一個文件中&#xff0c…

恢復視頻3個攻略:從不同情況下的恢復方法到實踐!

隨著科技的進步,我們的生活被各種各樣的數字內容所包圍,其中,視頻因其獨特的記錄性質,承載著許多重要的資料。但不管是自媒體人還是普通人日常生活隨手一拍,都會遇到誤刪視頻的情況。為了幫助您找回手機視頻&#xff0…

從零學爬蟲:使用比如說說解析網頁結構

新書上架~👇全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目錄 一、引言 二、網頁結構概述 示例:查看網頁結構 三、使用比如說說解析網頁 1.…

windows10更改文件默認打開軟件

📚博客主頁:knighthood2001 ?公眾號:認知up吧 (目前正在帶領大家一起提升認知,感興趣可以來圍觀一下) 🎃知識星球:【認知up吧|成長|副業】介紹 ??感謝大家點贊👍&…

使用ollama + webui+docker 運行任意大模型

🏡 Home | Open WebUI 如果您的計算機上有 Ollama,請使用以下命令: docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/o…

【Vue】跨域問題解決

Vue列文章目錄 【Vue】數據監測原理 【Vue】生命周期 【Vue】組件化編程 【Vue】組件用法 前言 … 目標 proxy代理的用法 #mermaid-svg-ZYJUqv8HPXLA3ecR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ZYJUqv8HPX…

紐曼硬盤隱藏文件丟失怎么恢復?介紹幾種有效的方法

紐曼硬盤作為存儲設備中的佼佼者,以其高性能和穩定性受到了廣大用戶的青睞。然而,在使用過程中,有時我們可能會遇到一些意想不到的問題,比如隱藏文件的丟失。這對于依賴這些文件進行工作或生活的人來說無疑是一個巨大的困擾。那么…

清華大學 | 機器人實驗室 | 具身智能 | 科研實習生招聘

hi,我們實驗室招實習生啦。歡迎簡歷投遞~ 基本要求 1. 代碼能力強,有公司實習經驗者優先 2. 熟練掌握python語言、pytorch框架 3. 具備大模型調試或使用經歷,掌握提示詞編寫技巧 4. 具備nlp、transformer構建調試經驗 5. 了解機器人基礎…

旋轉矩陣00

題目鏈接 旋轉矩陣 題目描述 注意點 將圖像旋轉 90 度不占用額外內存空間 解答思路 需要找到將圖像旋轉90度的規律,為了不占用額外內存空間,可以先將圖像上下翻轉,然后再將圖像沿著主對角線進行翻轉,得到的就是旋轉90度之后的…

pdf打開方式怎么設置默認?分享這幾種設置方法

pdf打開方式怎么設置默認?你是否曾遇到過打開PDF文檔時,默認的打開程序并非你所需要的,從而影響了工作效率?別擔心,本文將為你詳細解讀如何設置PDF的默認打開方式,讓你的工作更加高效便捷。 首先&#xff0…