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

简单!!高分!!Linux0.01中的简单问题—关于switch_to(n)。

    来源: 互联网  发布时间:2015-07-13

    本文导语:  我在阅读Linux0.01代码时怎么也弄不懂这一段的用处: /*  * switch_to(n) should switch tasks to task nr n, first  * checking that n isn't the current task, in which case it does nothing.  * This also clears the TS-flag if the task we switched t...


我在阅读Linux0.01代码时怎么也弄不懂这一段的用处:

/*
 * switch_to(n) should switch tasks to task nr n, first
 * checking that n isn't the current task, in which case it does nothing.
 * This also clears the TS-flag if the task we switched to has used
 * tha math co-processor latest.
 */
#define switch_to(n) {
struct {long a,b;} __tmp; 
__asm__("cmpl %%ecx,_currentnt" 
"je 1fnt" 
"xchgl %%ecx,_currentnt" 
"movw %%dx,%1nt" 
"ljmp %0nt" 
"cmpl %%ecx,%2nt" 
"jne 1fnt" 
"cltsn" 
"1:" 
::"m" (*&__tmp.a),"m" (*&__tmp.b), 
"m" (last_task_used_math),"d" _TSS(n),"c" ((long) task[n])); 
}


AT&T汇编实在太难懂了,请问各位这一段做了什么啊?
明明输入参数有5个,为什么只能在代码中找到%0、%1、%2这三个东东啊?
这个问题把我郁闷死了,求大家帮忙!不胜感激!!

|
%0:指*&__tmp.a
%1:指*&__tmp.b
%2:指last_task_used_math
具体还是要看看AT&T汇编

|
第一个冒号后的限定字符串用于描述指令中的“输出”操作数。刮号中的操作数与C语言的变量联系起来。第二个冒号后的限定字符串用于描述指令中的“输入”操作数。这个操作数可以是一个立即操作数或者是一个寄存器操作数。 

搜一篇介绍AT&T汇编的语法看看。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • Linux远程访问的问题,高分求教:)
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求购:linux和unix命令大全电子文档
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!


  • 站内导航:


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

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

    浙ICP备11055608号-3