当前位置:  编程技术>c/c++/嵌入式

c语言调用汇编的方法

    来源: 互联网  发布时间:2014-10-22

    本文导语:  c部分很简单,文件名随便,如main.c: 代码如下:#include #include void decToBin(long dec,char *b); //声明外部汇编函数int main(){          long dec=254;          char *bin=(char*)malloc(sizeof(char)*64);          decToBin(dec,bin);       ...

c部分很简单,文件名随便,如main.c:

代码如下:

#include
#include

void decToBin(long dec,char *b); //声明外部汇编函数
int main()
{
          long dec=254;
          char *bin=(char*)malloc(sizeof(char)*64);
          decToBin(dec,bin);
          printf("%sn",bin);  
          free(bin);  
          return 0;  
}   

 本人使用的是mac 64位系统,所以64bit寄存器为r开头,如:rax、rbx等。

c调用的代码如下,保存的文件名随便,如decBin.S or decBin.s.

代码如下:

.global _decToBin #下划线是必须的

_decToBin:
    pushq     %rbp
    movq    %rsp,%rbp

    movq     %rdi,-8(%rbp) #第一个参数
    movq     %rsi,-16(%rbp) #第二个参数

    movq    -8(%rbp),%rax
    movq    -16(%rbp),%rbx
    movq    $63,%rcx

A:
    rclq     $1,%rax
    jnc    B
    movb     $49,(%rbx)
    jmp C
B:
    movb     $48,(%rbx)
C:
    addq    $1,%rbx
    loop A

    popq     %rbp
    ret

AT&T语法的汇编网上有很多,俺就不介绍了。
在mac中使用的实际是clang编译器,这又牵扯到了LLVM项目,LLVM是构架编译器(compiler)的框架系统,Apple是LLVM计划的主要资助者。

cc链接的就是clang,Makefle文件:

代码如下:

main:main.o decBin.o

main.o:main.c

decBin.o:decBin.s
    cc -c $


    
 
 

您可能感兴趣的文章:

  • 请问有没有用AT&T汇编语法讲汇编语言的书?
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • 如何在VIM中使汇编语言和C语言自动缩进?
  • 高分求助:linux内核中的汇编语言和Dos或windows下的汇编是一样的吗,有这方面的书或资料可供学习吗,分不够可再加,决不食言
  • 如何使用汇编语言
  • 如何得到C语言代码对应的汇编代码?
  • 在gcc编程中怎样嵌入汇编语言?
  • 不会汇编语言,想学习Linux内核网络部分的代码可以嘛?
  • linux下的汇编语言的软件是什么?
  • Linux中奇怪的汇编语言?
  • 如果linux下的C语言中嵌入汇编成程序,GCC需要什么样的参数?
  • 求助VxWorks下C语言中如何嵌入汇编
  • 请问Linux2.6版本里用什么汇编语言??钱不多了,谢谢大家了!!!
  • 想了解LINUX一定能明白汇编语言吗?
  • Unix C支持嵌入汇编语言吗?
  • 请问linux中的arch/i386/kernel/head.S的汇编语言是用什么编译的
  • 那有Richard Blum 马朝辉译的《汇编语言程序设计〉的电子版下载
  • XML 的汇编语言 Xembly
  • 汇编语言rep movsd 的使用详解
  • 请教高人:AT&T汇编语言中把.byte .word .long的问题?
  • Linux添加系统调用时如何调用C语言库函数
  • 可不可以用java调用其他语言的编译结果?(好象asp调用com那样)
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • C语言中函数声明与调用问题
  • c语言中linux命令调用
  • 请问:C语言中system怎样调用shell,谢谢!急!!!!!
  • 提问,unix下C语言如何调用xml文件,不够再加分
  • linux下如何用c语言调用shell命令
  • ? 指点一下 RedHat 9 下的C 语言 中怎么调用mysqldump
  • 如果linux下的C语言中嵌入汇编成程序,GCC需要什么样的参数? iis7站长之家
  • @@@@@@@@@@@@@@@客户端用vb等非java语言写能调用ejb吗????
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • PHP编程语言介绍及安装测试方法
  • c语言打印输出双引号的方法示例
  • 求教,LINUX里用C语言读取微型数据库文件方法
  • C语言求连续最大子数组和的方法
  • c语言中用字符串数组显示菜单的解决方法
  • C语言实现计算树的深度的方法
  • C语言字符串原地压缩实现方法
  • C语言实现颠倒栈的方法
  • c语言生成随机数的方法(获得一组不同的随机数)
  • C语言 数与串之间转换的方法
  • c语言打开文件函数使用方法
  • C语言使用普通循环方法和递归求斐波那契序列示例代码
  • C语言实现找出二叉树中某个值的所有路径的方法
  • c语言swap(a,b)值交换的4种实现方法
  • C语言实现最长递增子序列问题的解决方法
  • 关于c语言里面的一种表示方法不理解
  • c语言 跳台阶问题的解决方法
  • c语言程序设计文件操作方法示例(CreateFile和fopen)
  • IIS报在服务器上找不到脚本语言'VBScript.encode'错误解决方法
  • 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
  • 用c语言实现HUP信号重启进程的方法
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • C语言中间语言 CIL
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 动态编程语言 LIME编程语言




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

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

    浙ICP备11055608号-3