首页 > > > GNU C中的嵌入式汇编.doc

GNU C中的嵌入式汇编.doc

GNU C中的嵌入式汇编.doc

上传者: 小小霸王仔二号 2014-02-14 评分1 评论0 下载1 收藏10 阅读量588 暂无简介 简介 举报

简介:本文档为《GNU C中的嵌入式汇编doc》,可适用于软件工程领域,主题内容包含GNUC中的嵌入式汇编::GNUC中的嵌入式汇编::分类:CC平时在读写代码过程中屡屡会遇到gcc编译环境下的嵌入式汇编问题觉得有必要总结一下。基于符等。

GNUC中的嵌入式汇编 2011-06-2100:10:55 分类: C/C++ 平时在读写代码过程中屡屡会遇到gcc编译环境下的嵌入式汇编问题,觉得有必要总结一下。基于gcc编 译器中汇编嵌入C语言的规则以及一些个人体会,现做一下总结,以备以后查阅。在接下来的总结中,我 会根据: 1)局部变量的类型(堆栈,寄存器); 2)嵌入式汇编语言中C变量分配寄存器的方法(手工指定、gcc编译器自动指定) 这两种情况的不同组合,并结合elf文件的反汇编内容对比C程序来展开讨论。 约定:下文中凡是提到局部变量之处,指的是变量a和b,凡是提到C变量之处,指的是嵌入式汇编中的 C语言变量 情况1:局部变量位于堆栈中,编译器自动绑定C变量到对应的寄存器 所用到的C代码如程序列表1-1所示: 表1-1情况1下的C语言代码(main.c) 1 1#include "stdio.h" 2 2 3 3 int main ( void ) 4 4 { 5 5 // register int a__asm ( "eax" ); 6 6 // register int b__asm ( "ebx" ); 7 7 int a = 1 ; 8 8 int b = 2 ; 9 9printf ( "a=%db=%d\n" , a , b ); 10 10 11 11__asmvolatile ( "nop" ); 12 12__asmvolatile 13 13 ( "add%1,%0\n\t" 14 14 : "+r" ( a ) 15 15 : "r" ( b ) 16 16 ); 17 17__asmvolatile ( "nop" ); 18 18 19 19printf ( "a=%db=%d\n" , a , b ); 20 20return0 ;

第1页

精彩专题

热门资料

数据库优化方法.doc

DBMS-实现篇-ch5.pdf

spring_security3.1 例子.docx

Head+First+Python(中文版).pdf

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料换一换

资料评价:

/ 14
所需积分:1 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!