彙編學習記錄之二
資料來源:組合語言第二版-王爽
1.段暫存器:
8086CPU中有4個段暫存器:cs,ds,es,ss
2.cs和ip:
cs和ip是8086CPU中兩個最關鍵的暫存器,它們指示了CPU當前讀取指令的地址。
cs為程式碼段暫存器,ip為指令指標暫存器。
在8086PC機中,任意時刻,8086CPU將cs:ip指向的內容當作指令執行。
jmp指令可以同時修改cs、ip的內容:jmp 段地址(cs):偏移地址(ip)
如:jmp 2AE3:3,執行後:cs=2AE3H,ip=0003H,8086CPU將從2AE33處讀取指令
jmp指令也可以只修改ip的內容:jmp 某一合法暫存器(ax/bx/cx/dx)
如:當前狀態為 ax=1000H,cs=2AE3H,ip=0003H
jmp ax
執行後,狀態為 ax=1000H,cs=2AE3H,ip=1000H
3.8086CPU的工作過程
(1)從cs:ip指向的記憶體單元讀取指令,讀取的指令進入指令緩衝器
(2)ip指向下一條指令
(3)執行指令 (轉到步驟(1),重複這個過程)
有錯誤請指正,謝謝。
相關推薦
彙編學習記錄之二
資料來源:組合語言第二版-王爽 1.段暫存器: 8086CPU中有4個段暫存器:cs,ds,es,ss 2.cs和ip: cs和ip是8086CPU中兩個最關鍵的暫存器,它們指示了CPU當前讀取指令的地址。 cs為程式碼段暫存器,ip為指令指標暫存器。 在8086PC機中
CAN匯流排學習記錄之二:系統結構與幀結構
CAN匯流排系統結構 CAN 控制器 接收控制單元中微處理器發出的資料,處理資料並傳給 CAN 收發器 CAN 收發器 將資料傳到匯流排 or 從匯流排接收資料給 CAN 控制器 CAN 資料傳遞終端 避免資料傳輸終了反射回來 CAN 資料匯流排 傳輸資料的資料線,兩根:CAN-hig
彙編學習記錄之七
資料來源:組合語言第二版-王爽 1.[bx]和loop指令 [bx]表示一個記憶體單元,它的偏移地址在bx中 我們要完整地描述一個記憶體單元,需要兩種資訊:(1)記憶體單元的地址;(2)記憶體單元的長度(型別)。 loop指令的格式是:loop 標號 CPU執行loop指令的
彙編學習記錄之五
資料來源:組合語言第二版-王爽 1.段的綜述 我們可以將一段記憶體定義為一個段,用一個段地址指示段,用偏移地址訪問段內的單元,這完全是我們自己的安排。 我們可以用一個段來存放資料,將它定義為“資料段”,將它的段地址放在資料段暫存器ds中,用mov,add,sub等訪問記憶體單元的指令
彙編學習記錄之四
資料來源:組合語言第二版-王爽 1.mov,add,sub指令 mov指令有以下幾種形式: mov 暫存器,資料 &n
彙編學習記錄之三
資料來源:組合語言第二版-王爽 1.記憶體中字的儲存 在CPU中,用16位暫存器來儲存一個字。高8位存放高位位元組,低8位存放低位位元組。 記憶體單元:記憶體單元是位元組單元,一個單元存放一個位元組。 字單元:存放一個字型資料(16位)的記憶體單元,由兩個地址連續的記憶體單元組成
imx6平臺V4L2程式設計學習記錄之初始化(二)
本文記錄的是我自己摸索學習、實現功能的過程,其中可能有些地方理解不正確,還望指出。 根據手冊說明V4L2程式設計支援兩種資料採集方式:記憶體對映和直接讀取。而我目前只實現過通過記憶體對映的方式採集資
python學習記錄之---------資料處理(1)陣列/二維陣列的定義和使用
工具/版本(1)安裝環境:Windows7 64bit(2)使用版本Python3.7Python 列表(List)序列是Python中最基本的資料結構。序列中的每個元素都分配一個數字 - 它的位置,或索引,第一個索引是0,第二個索引是1,依此類推。定義陣列1、定義一維陣列d
javascript學習記錄(二)-function函式的應用之sort()函式詳解
javascript 雖然式一種弱指令碼語言,但是他也是支援函式的宣告的,此處的函式和java中的函式是有很大差別的。其中值得一提的是javascript 不支援重寫舉個栗子:function someFunction(num1){ console.info(num1);
《opencv學習》 之 二值化
http input namespace turn 實現 ble 技術 jpg row 主要講解OTSU算法實現圖像二值化: 1.統計灰度級圖像中每個像素值的個數。 2.計算第一步個數占整個圖像的比例。 3.計算每個閾值[0-255]條件下,
算法設計與分析入門學習練習之二
oid cnblogs 練習 find end 算法設計 for bsp 一行 //計算1/1!-1/3!+1/5!-1/7!+…+(-1)^(n+1)/(2n-1)! float mathTest(int n){ int sign = 1; float
【2017-07-01】Linux應用開發工程師面試問題記錄之二:關於結構體的大小及內存對齊問題
偶數 而且 strong span net 但是 開發 f11 flag Tencent後臺服務器開發有一道題是計算一個結構體的sizeof的大小: struct strData { int m_Int; char m_Char; short m_Short; char
SQL Server學習記錄之獲取每月每季度每年第一天和最後一天
第一天 ediff code spa -1 指定日期 ctc 算法 datetime DECLARE@dtdatetime SET@dt=GETDATE() DECLARE@numberint SET@number=3 --1.指定日期該年的第一天或最後
ceph學習筆記之二RADOS
ceph sds Ceph學習筆記之二RADOS一、RADOS架構在RADOS架構中主要包含2個部分組件:1、MON(Monitor)由少量的Monitor節點構成的強耦合,小規模集群;負責管理Cluster Map。2、OSD(Object Storage Device)由數量可變的 大規模磁盤設備
Linux運維學習筆記之二:常用命令2
linux 運維 筆記71、passwd:修改用戶密碼語法passwd [參數]username選項-k --keep-tokens :保留即將過期的用戶在期滿後仍能使用-l --lock :鎖定用戶無權更改其密碼,只能root才能操作-u --unlock :解除鎖定-S --status :查看用戶狀
Python 第八階段 學習記錄之---算法
第一個元素 排序 小根堆 () 規律 空間復雜度 場景 復數 練習 算法(Algorithm): 一個計算過程, 解決問題的方法1、遞歸的兩個特點 - 調用自身 - 結束條件時間復雜度 - 時間復雜度是用來估計算法運行時間的一個式子(單位) - 一般
Python零基礎學習系列之二--Python介紹及環境搭建
url 軟件包 三方庫 簡單的 lin 文件的 span 高級程序設計 擴展 1-1、Python簡介: Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年
Java學習記錄(補充二:面對對象基礎復習,習題)
補充 實例化 ntc println stat 初始 sys order 成績 求3(可調整)個學員成績的和或平均分或兩者都具package day5; import java.util.Scanner; public class Score { //構造函數
【Java學習筆記之二十二】解析接口在Java繼承中的用法及實例分析
ani 復制代碼 ads compute 現在 target body 常量 實現接口 一、定義 Java接口(Interface),是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具
我的第一個spring boot程序(spring boot 學習筆記之二)
獲取json 了解 訪問 static 依賴 過程 public 獲取數據 gap 第一個spring boot程序 寫在前面:鑒於spring註解以及springMVC的配置有大量細節和知識點,在學習理解之後,我們將直接進入spring boot的學習,在後續學習中用到註