linux内核编程指南_linux内核源码详解

linux内核编程指南_linux内核源码详解本章主要是as86与gas两种汇编语言的简要介绍,C语言与汇编语言的相互嵌套,目标文件的结构与及makefile文件的简要语法。  1,as86汇编的简要语法及命令可以参考http://blog.csdn.net/astraylinux/article/details/7301596  2,gas汇编与intel汇编的主要区别:(具体语法参考:http://blog.csdn.net/as

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

    本章主要是as86与gas两种汇编语言的简要介绍,C语言与汇编语言的相互嵌套,目标文件的结构与及makefile文件的简要语法。

  1,as86汇编的简要语法及命令可以参考http://blog.csdn.net/astraylinux/article/details/7301596

  2,gas汇编与intel汇编的主要区别:(具体语法参考:http://blog.csdn.net/astraylinux/article/details/7301620)   

   * 寄存器名前缀%

   * 操作数是源在前,目的在后。与Intel语法刚好相反。

   * 操作数长度在指令名后缀,b表示8位,w表示16位,l表示32位,如movl %ebx,%eax。

   * 立即操作数(常量)用$标示,如addl $5,%eax

   * 变量加不加$有区别。如movl $foo, %eax表示把foo变量地址放入寄存器%eax。movl foo,%eax表示把foo变量值放入寄存器%eax。

Intel Code AT&T Code
mov eax,1 movl $1,%eax
mov ebx,0ffh movl $0xff,%ebx
int 80h int $0x80
mov ebx, eax movl %eax, %ebx
mov eax,[ecx] movl (%ecx),%eax
mov eax,[ebx+3] movl 3(%ebx),%eax
mov eax,[ebx+20h] movl 0x20(%ebx),%eax
add eax,[ebx+ecx*2h] addl (%ebx,%ecx,0x2),%eax
lea eax,[ebx+ecx] leal (%ebx,%ecx),%eax
sub eax,[ebx+ecx*4h-20h] subl -0x20(%ebx,%ecx,0x4),%eax

         3,两个目标文件连接示意图(注意子区与不可重定义区absolute)

    linux内核编程指南_linux内核源码详解

     4,C语言程序的编译和链接过程

     linux内核编程指南_linux内核源码详解    

   5,在C语言中嵌入汇编的语法格式

     linux内核编程指南_linux内核源码详解

   6,C语言调用的堆栈结构,栈内控制权转移,AT&T的栈组织方式与intel汇编应该是一样的,主要是cpu指令所决定的。

     linux内核编程指南_linux内核源码详解   

    7,在C语言中调用汇编的函数主要是实现方法是汇编,参数获取是从栈中根据esp偏移来取得,而调用函数的C这些语言代码与调用C语言的函数形式上是一样的。

    8,目标文件格式及链接操作:

    linux内核编程指南_linux内核源码详解linux内核编程指南_linux内核源码详解    

    linux内核编程指南_linux内核源码详解                              

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184641.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GoogleEarth出新版-4.2版【含天际地图和中文版】「建议收藏」

    GoogleEarth出新版-4.2版【含天际地图和中文版】「建议收藏」GoogleEarth终于发布4.2版了,强烈建议大家去下载这个版本,因为这个版本不仅有繁体中文的支持,而且还包含了一个有趣的东西:GoogleSky(天际地图)。

    2022年7月3日
    34
  • 2022美赛A题思路分享

    2022美赛A题思路分享2022美赛A题思路分享

    2022年5月18日
    39
  • 知乎登陆[通俗易懂]

    知乎登陆[通俗易懂]知乎登陆@(博客)[Python,登陆,知乎,爬虫]知乎登陆背景题外话环境寻找切入点问题的转移1问题的转移2继续撸开始代码完善代码018.8.12背景因为学年综合实践准备的一部分需要爬取知乎全站

    2022年8月5日
    5
  • 测试用例等价类划分法讲解_等价类分析法设计用例的方法

    测试用例等价类划分法讲解_等价类分析法设计用例的方法1.提交缺陷报告遇到的问题1.不知道是否全面测试了所有的内容(1)是不是所有的功能点都测试到了(2)是不是每个功能点都测试全面了2.存在大量冗余测试,影响测试效率(1)有些功能点可能测试多次3.对新版本的测试效果很难实施(1)每个版本测试的数据、步骤都不一样,随意性很强4.测试的覆盖率无法衡量(1)测试的好坏不得而知5.……为了避免以上问题,所以做测试用例,对测试过程可控,对测试质量有把握。2.什么是测试用例?(1)测试用例主要记录了测试的目的、步骤、输入的数据、预期结果等内容,它

    2022年10月17日
    6
  • 【电脑配置】开发人员必备,黑苹果双系统安装教程

    【电脑配置】开发人员必备,黑苹果双系统安装教程转存失败重新上传取消转存失败重新上传取消​首先把我自己的电脑配置贴出来供大家参考:CPU:Inteli7-8086k主板:技嘉Z370AORUSULTRAGAMINGWIFI内存:海盗船铂金统治者3000C15白光8G*2套条(已送修)改为酷兽DDR432008G*4,海力士颗粒。显卡:镭风RX5704G散热:九州风神堡垒240硬盘:PM9…

    2022年6月25日
    63
  • 苹果SE(fpga cpld)

    ModelsimSE-6410.4破解安装过程百度云链接:https://pan.baidu.com/s/1ONbjNLajFKzHDJ9bs4gz6Q密码:by0p压缩包解压密码:Lily_9 ①执行软件的正常安装程序.exe,点点我同意神马的….(需要重启一次)②在软件安装目录中找到mgls64.dll文件,右键文件属性取消只读属性。mgls64.dll文件的默认路径…

    2022年4月10日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号