gcc在编译内嵌汇编语言时,采取的步骤如下 变量输入: 根据限定符的内容将输入操作数放入合适的寄存器,如果限定符指定为立即数("i")或内存变量("m"),则该步被省略,如果限定符没有具体指定输入操作数的类型(如常用的"g"),gcc会视需要决定是否将该操作数输入到某个寄存器.这样每个占位符都与某个寄存器,内存变量,或立即数形成了一一对应的关系.这就是对第二个冒号后内容的解释.如::"a"(foo),"i"(100),"m"(bar)表示%0对应eax寄存器,%1对应100,%2对应内存变量bar. 生成代码: 然后根据这种一一对应的关系(还应包括输出操作符),用这些寄存器,内存变量,或立即数来取代汇编代码中的占位符(则有点像宏操作),注意,则一步骤并不检查由这种取代操作所生成的汇编代码是否合法,例如,如果有这样一条指令asm("movl %0,%1"::"m"(foo),"m"(bar));如果你用gcc -c -S选项编译该源文件,那么在生成的汇编文件中,你将会看到生成了movl foo,bar这样一条指令,这显然是错误的.这个错误在稍后的编译检查中会被发现. 变量输出: 按照输出限定符的指定将寄存器的内容输出到某个内存变量中,如果输出操作数的限定符指定为内存变量("m"),则该步骤被省略.这就是对第一个冒号后内容的解释,如:asm("mov %0,%1":"=m"(foo),"=a"(bar):);编译后为 #APP movl foo,eax #NO_APP movl eax,bar 该语句虽然有点怪怪的,但它很好的体现了gcc的运作方式.
Linux下的汇编语言.zip (49个子文件)
gcc中的内嵌汇编语言.txt 13KB
at&t汇编说明 - 中国Linux论坛.htm 13KB
l-ia.pdf 79KB
at&t汇编说明 - 中国Linux论坛.files
book.gif 153B
greyflat.gif 170B
threaded.gif 235B
stylesheet2.css 2KB
80x86 Assembly.htm 43KB
80x86 Assembly.files
unconstr.gif 3KB
gcc-inline-asm.pdf 111KB
UNIX汇编语言简介.files
adv.gif 10KB
bithome.gif 98B
bitdown.gif 104B
title.gif 5KB
bitexan.gif 101B
gccAT&T汇编格式.txt 5KB
保护模式编程的例子(1).txt 13KB
和luster一起学习在linux下使用汇编语言.txt 13KB
developerWorks Linux Inline assembly for x86 in Linux.htm 54KB
developerWorks Linux Inline assembly for x86 in Linux.files
bg-gold.gif 36B
icon-email.gif 183B
style.js 952B
search.gif 247B
c.gif 43B
ibm-logo.gif 454B
dwlogo-small.gif 2KB
icon-pdf.gif 615B
emailfriend2.js 15KB
grabtitle.js 928B
spinbox.js 1KB
forumwindow.js 445B
对 《gcc中的内嵌汇编语言》一文的补充说明.txt 5KB
AT&T汇编与Intel汇编比较2 - 中国Linux论坛.files
book.gif 153B
greyflat.gif 170B
threaded.gif 235B
stylesheet2.css 2KB
AT&T汇编与Intel汇编比较2 - 中国Linux论坛.htm 14KB
AT&T汇编与Intel汇编的比较1 - 中国Linux论坛.htm 17KB
[hushui110]ASM格式简介 - 中国Linux论坛.htm 12KB
[hushui110]ASM格式简介 - 中国Linux论坛.files
book.gif 153B
flat.gif 156B
greythreaded.gif 235B
mod.gif 123B
stylesheet2.css 2KB
UNIX汇编语言简介.htm 29KB
AT&T汇编与Intel汇编的比较1 - 中国Linux论坛.files
book.gif 153B
greyflat.gif 170B
threaded.gif 235B
stylesheet2.css 2KB- 1
- 粉丝: 1
我的内容管理
展开
我的资源
快来上传第一个资源
我的收益 登录查看自己的收益
我的积分
登录查看自己的积分
我的C币
登录后查看C币余额
我的收藏
我的下载
下载帮助
前往需求广场,查看用户热搜最新资源
- 基于API分组重构与图像表示的恶意软件检测.pdf
- 基于LSTM-Adaboost的电力负荷预测(Matlab代码实现)
- 基于WDF的PCI设备通用驱动架构.rar
- 基于JAVA的林木生物信息系统设计与实现-以毛果杨蛋白质序列为例.pdf
- web中文网页模板高端优可贝响应式医疗模板
- 项目管理基于售前流程的职责划分与实施路径设计:企业级售前管理体系标准化方案项目管理基于售前流程的职责划分与实施路径设计:企业级项目售前管理标准化体系建设
- ARM Cortex-M0面包板项目
- 创新首发LEA-CNN回归预测(首次发布LEA优化CNN网络,创新,先用先发,可做对比算法)(Matlab代码实现)
- 基于STM32单片机的气体分析仪设计.pdf
- 创新首发FIVM-RBF回归预测研究:基于特征重要性加权与径向基神经网络的非线性预测模型(Matlab代码实现)
- 经纬度转换平面XY坐标模块.rar
- web中文网页模板高端中文黑色主题响应式官网模板
- 基于麻雀搜索优化kmeans(SSA-kmeans)的图像分割算法(Matlab代码实现)
- 基于树莓派的语音识别安防系统
- Zephyr与Linux性能对比
- 【多无人机路径规划】基于粒子群优化算法的多无人机路径规划研究(Matlab代码实现)


信息提交成功