英特爾 PIN 二進制檢測工具中的 16 個通用寄存器如何表示 (How are the 16 General Purpose Registers represented in Intel PIN binary instrumentation tool)


問題描述

英特爾 PIN 二進制檢測工具中的 16 個通用寄存器如何表示 (How are the 16 General Purpose Registers represented in Intel PIN binary instrumentation tool)

我知道第一個 8 個通用寄存器在 PIN 中是如何表示的,例如 REG_GAX、REG_GBX 等。但是我似乎無法在用戶手冊中找到寄存器 r8 到 r15 是如何表示的。


參考解法

方法 1:

REG_GAX and REG_GBX are shorthand registers, for example REG_GAX is REG_RAX in 64‑bit or REG_EAX in 32‑bit.

Excerpt from source/include/pin/gen/reg_ia32.PH, see also the file on github:

REG_GAX = REG_RAX, ///< eax on a 32 bit machine, rax on 64

As R8 up to R15 don't exist on 32‑bit architecture, they have no shorthand except their own name (REG_R8, REG_R9, ...)

(by ankahiraNeitsa)

參考文件

  1. How are the 16 General Purpose Registers represented in Intel PIN binary instrumentation tool (CC BY‑SA 2.5/3.0/4.0)

#intel #instrumentation #intel-pin #x86-64






相關問題

x86 彙編程序崩潰,可能忽略了簡單的錯誤 (x86 assembly procedure crashes, possibly overlooking simple error)

英特爾虛擬化問題 (Android Studio) (Intel Virtualization Problems (Android Studio))

Intel 芯片組 - GPIO 編程 (Intel chipset - GPIO programming)

如何編譯 gcc 、 intel 靜態庫? (How to compile wth gcc , intel static libraries?)

我們可以在 OpenWrt linux 操作系統上運行 DPDK 應用程序嗎? (Can we run DPDK application on OpenWrt linux os?)

如何將內存中的 96 位加載到 XMM 寄存器中? (How to load 96 bits from memory into an XMM register?)

英特爾 PIN 二進制檢測工具中的 16 個通用寄存器如何表示 (How are the 16 General Purpose Registers represented in Intel PIN binary instrumentation tool)

Delphi 的 x86 代碼生成器框架 (x86 code generator framework for Delphi)

處理器:如何獲取有關英特爾至強的緩存信息 (Processor : How to get cache information about intel xeon)

任何人都試圖為另一個操作系統編譯 Intel xf86_video_intel (Anyone tried to compile Intel xf86_video_intel for another OS)

飛地字段不工作,但沒有錯誤 (Enclave field not working, but there is no error)

是否可以在 Intel SDE 中結合 CPUID 和指令集仿真參數 (Is it possible to combine CPUID and Instruction set emulation arguments in Intel SDE)







留言討論