【发布时间】:2012-09-29 16:50:33
【问题描述】:
我正在尝试使用 Ubuntu 12.04 分析 x86 汇编程序。我想使用 rdtsc 功能。问题是,根据评论,我应该得到 rdx 中的周期数,但是使用以下代码我得到的数字太高了:
SECTION .bss
SECTION .dat
SECTION .text
global main
main:
nop
cpuid
rdtsc
shl rdx, 32
or rdx, rax
mov r8, rdx
xor esi,esi
mov esi,19 ; instructions to be monitored
cpuid
rdtsc
shl rdx, 32
or rdx, rax
sub rdx, r8
在调试器中运行它,我在子指令之后的寄存器上得到以下结果:
rax 0xd88102bc
rbx 0x0
rcx 0xf0
rdx 0x44f3914a0
rsi 0x13
rdi 0x1
rbp 0x0
rsp 0x7fffffffdf38
r8 0x11828947ee1c
我不明白为什么 rdx 中的周期数对于这么简单的指令来说如此之高。 rcx 中的数字是否正确?是不是太高了?
提前致谢
【问题讨论】: