`
ah_fu
  • 浏览: 227922 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

第一次小小滴研究汇编

阅读更多
    因为想尝试使用INTEL CPU的RDTSC指令来为程序计数,所以查阅了相关资料,尝试后发现GCC下使用RDTSC指令不能获得正确的结果,于是想看看C的代码编译成汇编的样子:

    GCC下得这样: g++ -o main.s main.cpp -S
    微软的cl编译器得这样: cl.exe /FAs main.cpp

   GCC产生的汇编是AT&T格式,微软的是INTEL格式。从注释的角度说,微软的CL生成的汇编要贴心得多,源码和行号的信息都在里面,一目了然。

    汇编当然是看不懂的了,比如CL中使用rdtsc,为什么指令返回的结果存放在EDX:EAX中,最后还能作为函数的返回值?看来汇编的领域,我还是个纯粹的白痴!!!进军汇编,这是我未来的一个方向。

    OK,最后贴上可以同时在CL和GCC下使用的RDTSC调用的代码:
/**//// 调用INTEL CPU指令RDTSC来获得时间计数,便于得到代码段的性能指标
/// @return 64为无符号整形的CPU时钟值
unsigned long long rdtsc()
...{
#ifdef _MSC_VER 
/**//* msvc compiler */
    __asm _emit 
0x0F
    __asm _emit 
0x31
#else /* gcc compiler */
    unsigned 
long long temp;
    unsigned 
int low, high;
    __asm__ __volatile__(
"rdtsc" : "=a" (low), "=d" (high));
    temp 
= high;
    temp 
<<= 32;
    temp 
+= low;
    
return temp;
#endif
}

 
分享到:
评论

相关推荐

    华科汇编第一次上机

    华科汇编第一次上机 华科汇编第一次上机考试旨在考察学生对汇编语言程序设计的理解和应用能力。该考试包括四个小题目,每个小题目都涵盖了不同的知识点。 一、目的 本次考试的目的是巩固学生已学习的汇编语言程序...

    汇编第一次实验

    汇编语言第一次实验报告-武汉理工大学-全的

    汇编语言实验报告汇编语言第五次实验报告

    汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告汇编语言第五次实验报告...

    第一次汇编上机材料.zip

    【标题】"第一次汇编上机材料.zip"的文件是一个包含初学者进行汇编语言编程所需资源的压缩包。汇编语言是计算机编程的一种低级语言,它将机器指令以人类可读的形式表示,每一条指令对应计算机硬件的一个具体操作。这...

    汇编整理,小小资源汇编整理,小小资源汇编整理,小小资源

    每个汇编指令通常对应一个特定的机器码,允许程序员对计算机硬件进行直接控制。汇编语言在系统级编程、嵌入式系统开发以及性能敏感的应用中扮演着重要角色。 1. **指令系统**: 每种处理器架构都有其独特的汇编指令...

    2016年哈尔滨市第一次模拟考试地理汇编.pdf

    2016年哈尔滨市第一次模拟考试地理汇编.pdf

    2014年大连市高三第一次模拟考试理综汇编.pdf

    2014年大连市高三第一次模拟考试理综汇编.pdf

    菜鸟的汇编汇编汇编汇编

    2. **汇编语言__第一次上机.doc**:通常涵盖首次接触汇编语言时的基础知识,如数据类型、指令集介绍和简单的程序编写。 3. **新建 Microsoft Word 文档.doc**:可能包含额外的学习资料,如代码示例、解惑答疑或者...

    汇编语言 判断闰年 第一次发

    汇编判断闰年 汇编判断闰年 汇编判断闰年第一次发 请多多指教

    蜂鸣器发滴音长响【汇编语言】.zip

    蜂鸣器发滴音长响【汇编语言】.zip蜂鸣器发滴音长响【汇编语言】.zip蜂鸣器发滴音长响【汇编语言】.zip蜂鸣器发滴音长响【汇编语言】.zip蜂鸣器发滴音长响【汇编语言】.zip蜂鸣器发滴音长响【汇编语言】.zip蜂鸣器发...

    汇编API 汇编API 汇编API

    【汇编API】是计算机编程领域的一个重要概念,特别是在低级编程和系统级开发中扮演着关键角色。汇编API,或称为汇编语言应用程序接口,是指一组用汇编语言编写的功能函数或子程序,供程序员在开发软件时调用,以实现...

    介绍了汇编的第一个程序

    本节目旨在引导读者了解汇编语言的基础知识,通过实践操作,编写并运行第一个汇编程序。下面是本节要点: 汇编语言是什么? 汇编语言(Assembly Language)是一种低级编程语言,使用符号表示机器语言,易于人类...

    Inter汇编语言程序设计(第五版)

    从给定的信息来看,主要关注的是“Inter汇编语言程序设计(第五版)”这一书籍。这本教材是学习Intel架构下汇编语言程序设计的重要资料,尤其对于那些希望深入了解低级编程、计算机体系结构以及操作系统原理的学习者...

    汇编语言 第2版_郑晓薇

    郑晓薇编著的这本《汇编语言(第2版)》以80X86系列微型计算机为基础,以MASM5.0为汇编上机实验环境,重点介绍Intel8086指令系统。《汇编语言(第2版)》中实验练习贯穿始终,在各章中布置了实验任务模块,并在第10...

    一行内可写多条汇编指令

    编写汇编程序 实现一点点功能就可能要几十行代码---因为不像高级语言,汇编 指令一行只能写一条。人们常常不得不在数千行代码内翻来覆去,头昏眼花。 我这个小小的程序可以用“~”分隔符将多条指令写在同一行,中间...

    微软汇编编译器 微软汇编编译器 微软汇编编译器

    微软汇编编译器是用于编写和转换汇编语言代码的工具,它是微软开发环境中的一个重要组成部分。汇编语言是一种低级编程语言,它与计算机的硬件架构紧密相关,允许程序员对计算机的每一个操作进行精确控制。在软件开发...

    汇编第一章

    汇编第一章汇编第一章汇编第一章汇编第一章

    浙大汇编语言第一次作业

    浙大白老师的作业,完美运行。也是我辛苦码出来的,我想应该还是值这些分的。

    王爽汇编语言(第二版)

    总的来说,《王爽汇编语言(第二版)》是一本适合初学者和进阶者阅读的汇编语言教程,通过系统的学习,读者不仅可以掌握汇编语言的基本知识,还能深入了解计算机系统的运作机制,为后续的系统级编程和底层开发打下坚实...

    汇编语言 第一章

    汇编语言第一章 科学出版社 邵玉祥 主编

Global site tag (gtag.js) - Google Analytics