彙編第二章--基礎知識梳理與總結

来源:https://www.cnblogs.com/Vincent12/archive/2018/10/05/9744025.html
-Advertisement-
Play Games

第一章,我們介紹了有關彙編語言的基礎知識,在第二章我們主要介紹寄存器。 CPU的主要部件是寄存器,在8086CPU有14個寄存器,它們分別是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。8086CPU的所有寄存器都是16位的,可以存放兩個位元組。AX、BX、C ...


第一章,我們介紹了有關彙編語言的基礎知識,在第二章我們主要介紹寄存器。

CPU的主要部件是寄存器,在8086CPU有14個寄存器,它們分別是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。8086CPU的所有寄存器都是16位的,可以存放兩個位元組。AX、BX、CX、DX這4個寄存器通常用來存放一般性的數據,稱為通用寄存器。由於8086CPU的上一代CPU中的寄存器都是8位的,為了保持相容,8086CPU的AX、BX、CX、DX這4個寄存器都可分為兩個獨立使用的8位寄存器:

•AX可分為AH和AL  •BX可分為BH和BL  •CX可分為CH和CL  •DX可分為DH和DL 

出於相容性的問題,8086CPU可以處理兩種尺寸的數據:

位元組:記為byte,一個位元組由8個bit組成,可以存放在8位寄存器中

字:記為word,由兩個位元組組成,這兩個位元組分別被稱為高位位元組和低位位元組

 

通過彙編指令控制CPU進行工作:

在寫一條彙編指令或一個寄存器的名稱時不區分大小寫。

CPU執行程式段中的每條指令後,對寄存器中的數據的改變:

程式段中的最後一條指令add ax,bx,在執行前ax和bx中的數據為8226H,相加後的數據為:1044CH,但是ax為16位的寄存器,只能存放4位十六進位的數據,所以最高位的1不能在ax中保存,ax中的數據為:044CH,最高位的1並不是捨去了,而是存在了其他位置,隨著我們對彙編語言的慢慢深入,就會體會到程式設計師的聰明與機智。

註意:ax分出的兩個獨立的寄存器ah與al,它們是毫無關聯的,不要誤認為al的數據相加後超出的位數存放在ah中!

每一個記憶體單元都有唯一的地址,稱為物理地址。

16位結構的8086CPU:

1.運算器一次最多可以處理16位的數據。

2.寄存器的最大寬度為16位。

3.寄存器和運算器之間的通路為16位。

8086CPU有20位地址匯流排,可以達到1MB的定址能力,那它怎麼用16位地址來達成20位物理地址的呢?

8086CPU採用在內部用兩個16位地址合成的方法來形容一個20位的物理地址。

邏輯結構如圖所示:

地址加法器採用:物理地址=段地址*16+偏移地址的方法進行合成

“物理地址=段地址*16+偏移地址”本質含義:CPU在訪問記憶體時,用一個基礎地址(段地址*16)和一個相對於基礎地址的偏移地址相加,給出記憶體單元的物理地址。

段的概念:每一個段有一個段地址,但是記憶體並不是被劃分成一段一段的,而是由於CPU進行劃分。

由於16位地址的定址能力是64KB,所以一個段的最大長度為64KB,並且段的起始地址一定是16的倍數,變化範圍為0~ffffH。

8086CPU有4個段寄存器:CS,DS,SS,ES。

CS和IP是8086CPU中兩個最關鍵的寄存器,CS為代碼段寄存器,IP為指令指針寄存器。

8086CPU讀取、執行的工作原理:

CS和IP的值是可以修改的:IP每次是根據指令的空間大小進行更新。

簡單的修改CS、IP的指令:jmp指令。

①同時修改CS、IP的內容:jmp段地址:偏移地址

②只修改IP的內容:jmp 某一合法寄存器

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 現在有許多朋友微信都會在不知不覺中給封了,這是為什麼呢?小編來通知咱們由於你們運用微信嚴峻違規了,所以被凍住了,那麼碰到這種請看咱們該怎樣來處理呢?許多朋友就手足無措了,那今日小編就來幫咱們處理這問題。下麵一同來看看吧。辦法一:1、賬號存在嚴峻違規不能進行解封,這時候咱們能夠先凍住自己的賬號,再進行 ...
  • 今日小編要和我們共用的是微信被封了怎樣解封,期望能夠協助到我們。 今日小編要和我們共用的是微信被封了怎樣解封,期望能夠協助到我們。 今日小編要和我們共用的是微信被封了怎樣解封,期望能夠協助到我們。 今日小編要和我們共用的是微信被封了怎樣解封,期望能夠協助到我們。 今日小編要和我們共用的是微信被封了怎 ...
  • 現如今,微信已經被老老少少、全民所用。可是,在運用的過程中,也會呈現不少過錯的操作導致被封號,而許多封號都需求老友輔佐驗證的,接下來我就說下輔佐驗證的註意事項。 辦法/步驟 現如今,微信已經被老老少少、全民所用。可是,在運用的過程中,也會呈現不少過錯的操作導致被封號,而許多封號都需求老友輔佐驗證的, ...
  • 許多人來訴苦,說自己的號被平白無故封了,約束登錄,需求約請老友來輔佐,可是自己第一次遇到這個狀況,又怕犯錯導致更嚴重的封號。今日就寫這篇文章,通知咱們具體的操作過程,依照我說的一步步做,確保不會出問題。 許多人來訴苦,說自己的號被平白無故封了,約束登錄,需求約請老友來輔佐,可是自己第一次遇到這個狀況 ...
  • 微信在咱們日程日子中在許多人現已習慣了這個溝通方式。 但是有些運用者在運用不當的狀況下,會莫名的被封號。或許在運用過程中運用外掛軟體、群發廣告、發佈國家不允許的內容(如涉黃、涉賭、暴利、反動等)。 在這兒就需要給微信號解封了。怎麼解封成了許多用戶心中的疑慮。小編將為您回答,告訴您怎麼自助免除微信號封 ...
  • 跟著2018年國家展開的凈網舉動,在互聯網上任何行為舉止都需求慎重對待,一不留神的言語失去或違規,則會存在處分的危險,微信也不破例。近期微信嚴打違規微信號,讓不少對準則不瞭解的用戶也絕不留情的也直接給予了處分封禁。本次經歷講解的則是微信約束登入不可解封是否還能夠解封? 方法/過程: 跟著2018年國 ...
  • 題意 "題目鏈接" Sol 非常妙的一道題。。 可以這樣想,在BFS序中較早出現的一定是先訪問的,所以把每個點連出去的邊按出現的前後順序排個序 看一下按順序遍歷出來的序列與給出的是否相同就行了 cpp include using namespace std; const int MAXN = 2e5 ...
  • ·實驗任務 (1)使用Debug,用E命令和A命令以兩種方式將指令寫入記憶體 機器碼 彙編指令 b8 20 4e mov ax,4e20h 05 16 14 add ax,1416h bb 00 20 mov bx,2000h 01 d8 add ax,bx 89 c3 mov bx,ax 01 d8 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...