1. 程式人生 > >qemu指令翻譯過程(1)-- ADD指令

qemu指令翻譯過程(1)-- ADD指令

本文通過qemu中add指令的翻譯過程來加深瞭解向x86通用指令的結構以及qemu指令翻譯的基本通過。

1. x86通用指令的基本結構(摘自intel 手冊)

x86/x64 通用指令編碼的核心是:OpcodeModRM 以及 SIB

  • Opcode 提供指令的操作碼
  • ModRM 提供運算元的定址,以及對 opcode 進行輔助補充
  • SIB 提供更豐富的 memory 定址
2. qemu中add指令的翻譯過程(摘自我的筆記《qemu原始碼分析》)










至於,如何分析操作碼和運算元,最笨的方法就是參考intel手冊,不過,還是有許多技巧的,在以後的blog中,將會詳細講解如何分析x86指令集的操作碼和運算元(熟能生巧!)。

相關推薦

qemu指令翻譯過程1-- ADD指令

本文通過qemu中add指令的翻譯過程來加深瞭解向x86通用指令的結構以及qemu指令翻譯的基本通過。1. x86通用指令的基本結構(摘自intel 手冊)x86/x64 通用指令編碼的核心是:Opcode,ModRM 以及 SIB Opcode 提供指令的操作碼ModRM

springboot啟動過程1-初始化

好的 事件監聽 spa 兩個 包括 servlet 實例對象 ice 機制 1 springboot啟動時,[email protected]/* */函數,執行SpringApplication.run(DemoApplication.class, arg

vue--自定義指令進行驗證1

指令 borde order hone 大於 正則表達 display UNC pen 實例代碼: <template> <div id="app" class="app"> <h3>{{msg}}</h3> &

Oracle儲存過程1

(一)儲存過程的基本語法   1  CREATE OR REPLACE PROCEDURE 儲存過程名   2  IS   3  BEGIN   4  

A Quantitative Approach-appendix K1——RISC指令系統的基本比較

A Quantitative Approach-appendix K(1)——RISC指令系統的基本比較 RISC體系結構可以分為兩個組 為了桌面和伺服器服務的RISCs:Digital Alpha,MIPS,HP PA-RISC,IBM and Mo

linux 核心學習過程1-硬體特性和核心設計之間的聯絡

該貼用來作為自己學習linux核心的記錄和筆記,很多東西都是自己理解後整理的內容,各位看官若覺得有問題的地方,可以留言或自行查閱。 linux核心在設計的過程中很多都是依據硬體晶片特性來設計,晶片在設計的過程中很多時候需要保持相容性,這樣就留下了很多令人費解的概念,比如分段和分頁機制,

stm32+lwip的物聯網開發——學習過程1

注:本人拒絕重複教程內容,只寫下自認為自己有所工作的地方,哪怕只是很小的一點點。 十分歡迎大家與我討論,指出文中錯誤與不足之處。 2016.04.16下午13.23 由於一個IOT的專案,順理成章地學習stm32+lwip。本來先學stm32可能會好一些,

儲存過程1----開篇

這幾天覺得自己要研究一下儲存過程,因為覺得自己資料庫這塊,自己也要加強一下 接下介紹自己的心得,oracle和mysql的都看過了一些,先從簡單都起步 建立一個簡單都儲存過程 DROP PROCEDURE IF EXISTS `stu_insert`; DELIMITER ;; CR

hadoop學習WordCount示例深度學習MapReduce過程1

        花了整整一個下午(6個多小時),整理總結,也算是對這方面有一個深度的瞭解。日後可以回頭多看看。         我們都安裝完Hadoop之後,按照一些案例先要跑一個WourdCount程式,來測試Hadoop安裝是否成功。在終端中用命令建立一個資料夾,簡單的

android apk編譯過程1

aapt:andorid 資源打包工具(android asset packaging tool),工具在目錄${ANDROID_SDK_HOME}/platform-tools/appt下; aidl:android介面描述語言轉換為.java檔案的工具(android Interface definit

Spring4.3.x 淺析xml配置的解析過程1——使用XmlBeanDefinitionReader解析xml配置

概述 Spring預設的BeanFactory是DefaultListableBeanFactory類,spring建立DefaultListableBeanFactory物件後,會把配置資訊轉換成一個一個的BeanDefinition物件,並把這些Bea

redhat/centos 6.3 搭建git/gitosis/gitweb詳細過程1

 近來,需要向開源專案提交程式碼,終於意識到了git的重要性,原因就不用多說了(人家都採用git來進行程式碼版本管理)。   於是,花了上午的時間自己搭建了一個git伺服器,並把搭建的詳細步驟和注意事項與大家分享。 主機環境: RedHat 6.3, 並配置了本地i

JSP學習筆記1——Jsp指令、動作元素和內建物件

簡單來說,javaweb技術就是讓伺服器端能夠執行Java程式碼,之後返回資料給客戶端(瀏覽器)讓客戶端顯示資料 jsp頁面中可以巢狀java程式碼(java小指令碼)和巢狀Web前端(html,css,js)來顯示資料。 伺服器解析一個jsp,其實就是把jsp中的java程式碼編譯並執行,之後再返回一個St

性能測試從0到1過程

sleep efi python腳本 size sel 應用服務器 完全 展示 服務   本人,從畢業開始接觸測試,但是性能方面一無所知。之前在第一份工作,測過安卓客戶端,當時寫過一個非常簡單的shell腳本,push到手機系統內,用於手機硬件信息。但是在服務端的性能方面,

再看數據庫——1存儲過程

靈活 技術分享 ted pop 能夠 數據庫對象 順序 記錄 爸爸 當我們運行一個比較簡單的操作時,一般都是用SQL語句。可是當邏輯越來越復雜時,只使用順序運行的SQL語句序列表現出非常大的局限性。這時,就能夠考慮用還有一種方法了。那就是存儲過程。

豹哥嵌入式講堂:ARM Cortex-M調試過程探析1- 4線接口標準JTAG

狀態機 alt 端口 含義 允許 ati state 數據 identity   大家好,我是豹哥,獵豹的豹,犀利哥的哥。今天豹哥給大家講的是嵌入式調試裏的接口標準JTAG。   在結束《ARM Cortex-M開發文件詳解》系列文章之後,豹哥修整了一小段時間,但是講課的

技術文檔翻譯-------glove readme1

並排 ext bsp rep cor ren contents into ssi 1 Package Contents 2 To train your own GloVe vectors, first you‘ll need to prepare your cor

c專案實現1實現電子詞典的翻譯

專案實現功能 通過使用者的輸入,在字典檔案中進行 查詢,返回對應的翻譯內容。 字典檔案的樣式,該檔案已經上傳。 #a                       

Vue.js1- 指令和修飾符

<template> <div v-click v-text="msg" v-html="msg" :class="['box1',flag ? 'box2': '']">{{msg}}</div> <p @click="Func(arg)"

前端爬坑日記1,你在初入vue專案開發過程中可能會掉進的坑!

這篇文章是記錄我在vue專案開發中遇到的各種巨坑,希望看了能對你有一些幫助,這篇文章會長期更新 1.Vue中使用sass 首先通過以下程式碼安裝sass的依賴: npm i sass-loader node-sass - s 然後在webepack.base.conf.js目錄下配置