当前位置: 首页 > news >正文

网站能为智慧城市建设作出什么贡献wordpress建电影网站

网站能为智慧城市建设作出什么贡献,wordpress建电影网站,建投五公司网站,漳州建设项目公告网站asm关键字允许你在C代码中嵌入汇编程序指令。GCC提供两种形式的内联asm语句。一种是基本asm语句#xff0c;是没有操作数的语句#xff08;见基本asm#xff09;#xff0c;而另一种扩展asm语句#xff08;见扩展asm#xff09;包括一个或多个操作数。在函数内部混合使用… asm关键字允许你在C代码中嵌入汇编程序指令。GCC提供两种形式的内联asm语句。一种是基本asm语句是没有操作数的语句见基本asm而另一种扩展asm语句见扩展asm包括一个或多个操作数。在函数内部混合使用C语言和汇编语言时扩展形式是首选但要在顶层(函数外)使用或包含汇编语言你必须使用基本asm。 你也可以使用asm关键字来覆盖C语言中某个符号的汇编语言名称或者将C语言变量放在一个特定的寄存器中。 基本asm / Basic Asm 一个基本的asm语句的语法如下 asm asm-qualifiers ( AssemblerInstructions ) 对于C语言来说asm关键字是一个GNU扩展。编写的代码要能够用-ansi或-std选项来编译的话即选择不使用GNU扩展的C语言要使用__asm__而不是asm 关键字。对于C语言asm是一个标准的关键字但__asm__可以用于选项-fno-asm下编译的代码。 修饰符 / Qualifiers volatile 这个可选的volatile修饰符没有作用。所有基本的asm块都是隐含的volatile。 inline 使用inline修饰符是为了将这些语句内联asm语句的占用空间会尽可能最小。 参数 / Parameters Assembler Instructions / 汇编指令 在修饰符后面括号内包含的是汇编指令或汇编代码是以字面字符串的形式出现。字符串内容可以包含任何能被汇编器识别的指令以及伪指令。GCC并不解析字符串中的汇编器指令也不知道其含义也不知道它们是否是有效的汇编代码。 指令 / Instructions机器码的助记符有对应的机器码。 伪指令 / Directives没有对应的机器码由编译器执行计算机并不执行。 在一个asm基本语句中的汇编指令部分可以包含多条汇编指令分隔方法使用当前系统的汇编代码的分隔符即可。还有经常使用的换行显示一般使用换行符加制表符写作‘\n\t’。 注意一些类型的汇编语言允许用分号作为行的分隔符。但是还有些汇编语言使用分号作为注释起始符。 备注 / Remarks 使用扩展汇编形式一般会产生更小、更安全和更有效的代码在大多数情况下比基础汇编形式是更好的选择。 但是有两种情况是只能使用基础汇编的 1扩展汇编代码只能放在C函数内部如果是函数外的话就只能使用基础汇编。或者说是file scope top-level下要写inline的汇编代码只能用基础汇编。 可以写的内容包括汇编指令、汇编宏汇编函数等。在函数外的基本汇编形式的语句不能加修饰符。 2声明了naked属性的函数里面只能使用基本汇编。 在基本asm里要想安全的访问C数据和调用C函数比想象中复杂。要访问C语言的数据最好使用扩展的asm。 不要期望一系列asm语句在编译后保持完全连续。如果某些指令需要在输出中保持连续请将它们放在一个多指令asm语句中。注意GCC的优化器可以改变asm语句相对于其他代码的位置包括一些跳转语句(across jumps)。 asm语句不能跳转到其他asm语句。GCC无法识别这些跳转在优化编译时就无法处理它们。仅在扩展asm中支持从asm跳转到C标签。 在某些情况下GCC在优化时可能会复制或删除重复的汇编代码。如果汇编代码定义了符号或标签这可能会导致编译期间出现意外的重定义符号错误。 警告 C标准没有指定asm的语法所以在不同编译器中会出现不兼容的情况。而这些不兼容性可能不会产生编译器警告或错误。 GCC不解析基本asm的AssemblerInstructions这意味着里面的代码无法向编译器传达信息。GCC也看不到asm中的符号可能会将其作为未引用的符号丢弃。它也不知道汇编程序代码的副作用例如对内存或寄存器的修改。与某些编译器不同GCC假设汇编代码不会对通用寄存器进行任何更改。这一假设可能会在未来的版本中发生变化。 为了避免将来编译出现问题比如语法的更改和编译器的兼容性问题请考虑用扩展asm替换基本asm。 编译器将基本asm中的汇编程序指令逐字复制到汇编语言输出文件中而不处理汇编代码也包括可以在扩展asm中使用的“%”运算符。这导致了基本asm字符串和扩展asm模板之间的细微差异。例如要引用寄存器可以在基本asm中使用“%eax”在扩展asm中可以使用“%%eax”。 在支持多种汇编语言的目标机器平台上如x86所有基本asm都使用-masm命令行选项来指定汇编语言请参见x86选项。基本asm不能为不同汇编语言提供不同汇编代码。 在包含非空的汇编语句的基本asm中GCC假设这些其构成的汇编语句块不会更改通用寄存器但可以读写全局变量。 下面代码是在i386平台上的一个基本asm语句例子 /* Note that this code will not compile with -masmintel */ #define DebugBreak() asm(int $3) 简单的函数中使用例子 int main() { asm(nop);   // 执行一条空语句 asm(movl $1, %eax); // 将整数1赋值给eax寄存器 return 0; } 参考 Using Assembly Language with C (Using the GNU Compiler Collection (GCC)) GCC-Inline-Assembly-HOWTO
http://www.tj-hxxt.cn/news/143140.html

相关文章:

  • 万户网站后台控制中心浙江小九天建设集团网站
  • 企业网站开发与设计论文在域名做网站
  • 网站服务器连接被重置搭建小程序多少钱
  • 郑州模板网站设计哪家便宜创业服务网站建设方案项目书
  • 做网站是怎么赢利的金华专业的网站建设
  • 北京建设工程质量协会网站潍坊mip网站建设
  • 免费网站免费蓝海电商怎么做
  • 深圳公司网站建设哪家好wordpress安装下载失败
  • 微信公众号(网站建设)合同黑客钓鱼网站的制作
  • 西安有专业制作网站的公司吗外包app
  • 怎样进入医院公众号谷歌seo搜索引擎下载
  • 365建站器网页设计应用论文描述
  • 怎么把自己做的网站挂到外网上网站建设方案书模板 备案
  • 网站建设所需材料互动营销是什么意思
  • 如何将网站转成小程序企业商务网站建设
  • 网站建设开题报告ppth5网站架设
  • 做网站开创和中企动力哪家强织梦网站怎样做seo
  • 网站设计工具大气的网站设计
  • 深圳专业建站公司技术好怎么做营销型网站
  • 东莞网站建设收费pc网站增加手机站
  • 北海做网站网站建设大学里读网站建设
  • 如何知道自己网站主机电脑网站
  • 网页制作与网站建设宝典 第2版做单页网站要多少钱
  • 无锡高端网站建设机构移动建站平台
  • 昆明做凡科网站仿做购物网站
  • 莆田 做网站的公司手机app下载免费安装
  • 呼和浩特做网站的地方网站换一个图片怎么做
  • 网站建设的点子织梦网站发稿说明
  • 网站建设课程体会平台设计与开发
  • 茶叶网站开发wordpress页脚计时