当前位置:  技术问答>linux和unix

c嵌入汇编求解

    来源: 互联网  发布时间:2016-06-24

    本文导语:  本帖最后由 baiafeu 于 2009-08-13 20:43:02 编辑 01 #define get_seg_byte(seg,addr)  02 ({  03 register char __res;  04 __asm__("push %%fs;  05 mov %%ax,%%fs;  06 movb %%fs:%2,%%al;  07 pop %%fs"  08 :"=a" (__res)  09 :"" (seg),"m" (*(addr)));  10 __r...

本帖最后由 baiafeu 于 2009-08-13 20:43:02 编辑
01 #define get_seg_byte(seg,addr) 
02 ({ 
03 register char __res; 
04 __asm__("push %%fs; 
05 mov %%ax,%%fs; 
06 movb %%fs:%2,%%al; 
07 pop %%fs" 
08 :"=a" (__res) 
09 :"" (seg),"m" (*(addr))); 
10 __res;})

这个宏用于取段seg中addr偏移处的一字节数据,为什么addr用*(addr),不直接用addr?addr本身不就是偏移值么? 
那位大侠赐教。谢谢……

|

    "m" (*(addr)),m限制符表示取变量的内存位置,即是,汇编成汇编代码时,该变量不被从内存送入
寄存器后,在使用,直接使用其内存位置。若使用addr ,则变成了使用该指针,而不是该指针指向的变量。
因此,使用*(addr)。楼主,可以看看汇编后的汇编代码,就清楚了。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问在哪下载嵌入式Linux开发平台???想学嵌入式开发!!!
  • 有谁做过嵌入式 Linux开发?是否有嵌入式Linux的JVM?
  • 嵌入式网络编程与非嵌入式网络编程有什么不同
  • 怎样把自己做的一个软件嵌入到JBuilder中,把它变成Jbuilder的一个功能,就想东方网译嵌入到IE里一样。
  • 问一个弱弱的问题:做嵌入式开发,宿主机的Linux版本一定要跟目标机上的嵌入式Linux版本一致么?
  • 我怎么糊涂了:想开发嵌入式系统(目标机采用UCLINUX嵌入式操作系统),在RED HAT LINUX下开发,选用什么工具呢?QT还是qt embedded?
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 请问什么是嵌入式数据库?(空)
  • 关于“嵌入式Linux”
  • 嵌入式系统的学习
  • 嵌入式学习方法
  • 请问:构建一个嵌入式开发环境时的疑问?
  • linux 嵌入式开发用买开发板吗?
  • 求嵌入式Linux的入门书籍!
  • 嵌入式应用开发协作系统 Yocto
  • 嵌入式系统的C运行库 Newlib
  • 嵌入式GLIBC EGLIBC
  • Linux的嵌入式开发,请高手指点
  • 驱动程序开发和嵌入式开发有什么联系吗?
  • 嵌入式 syslog


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3