社区
Linux_Kernel
帖子详情
gcc里面的嵌入汇编语句
gougou606
2006-04-01 12:01:17
大家好
我问问在gcc里面的嵌入汇编语句中
例如:movl %%eax,%%ebx
test %%ebx,%%ebx
其中为什么要两个%%,小弟不懂
好有就是test %%ebx,%%ebx这句话 我觉得没有什么意义啊,这样测试了ebx的值还是不变啊???
...全文
407
4
打赏
收藏
gcc里面的嵌入汇编语句
大家好 我问问在gcc里面的嵌入汇编语句中 例如:movl %%eax,%%ebx test %%ebx,%%ebx 其中为什么要两个%%,小弟不懂 好有就是test %%ebx,%%ebx这句话 我觉得没有什么意义啊,这样测试了ebx的值还是不变啊???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
claus2001
2006-04-03
打赏
举报
回复
mark
tb01412
2006-04-02
打赏
举报
回复
在内嵌的汇编指令中可能会直接引用某些硬件寄存器,我们已经知道AT&T格式的汇编语言中,寄存器名以“%”作为前缀,为了在生成的汇编程序中保留这个“%”号,在asm语句中对硬件寄存器的引用必须用“%%”作为寄存器名称的前缀,之所以这样做,因为在内嵌汇编时%是一种标识,而真正的汇编语法中%却是要使用物理寄存器的一种符号,这就有点类似于C语言的转义字符一样
TEST用法:
TEST AX, 1 ;测试AX的第0位. TEST CL, 10101B ;测试CL的第0、2、4位
如果TEST %%ebx,%%ebx,条件表达示就为真,关键是后面的代码,你需要把后面的代码贴出来,别人才知道它的作用之所在
默默努力的小熊
2006-04-02
打赏
举报
回复
这是AT&T的汇编语言的语法。AT&T嵌入式汇编就要加上两个%%了。
具体的AT&T汇编语言的语法可参考:
http://blog.csdn.net/mylxiaoyi/archive/2005/11/08/525349.aspx
test %%ebx,%%ebx是不改变%%ebx,但是会改变eflags中的ZF标志啊。
kes2000
2006-04-02
打赏
举报
回复
TEST 测试,每对操作数的对应数据位之间执行隐含的“与”操作,仅修改标志位,不回送结果
ebx的值应该是不变的
嵌入
式
汇编
的使用
本文深入探讨了
嵌入
式编程中
汇编
语句
的使用方式,包括基本格式、寄存器操作以及如何通过volatile关键字避免
GCC
的优化干扰。同时,解释了组合
语句
的正确应用。
GCC
内嵌
汇编
之语法详解
本文详细介绍了在C语言中
嵌入
汇编
语言的方法,包括内嵌
汇编
的基本语法、
汇编
语句
模板、输出和输入部分的描述、限制字符的使用、以及寄存器破坏描述符的作用。通过实例解析了
GCC
如何处理C表达式与
汇编
指令操作数的对应关系。
嵌入
汇编
本文介绍
GCC
中
嵌入
式
汇编
语句
的基本格式及常用寄存器约束的缩写,展示了如何定义
嵌入
汇编
代码的具体示例。通过实际代码片段说明了如何从指定内存地址读取字节。
对
gcc
内嵌
汇编
的探索与实验(1)
本文介绍如何在
GCC
中
嵌入
汇编
代码,并通过一个简单示例展示其基本用法。文章解释了
GCC
内嵌
汇编
的语法结构,包括
汇编
语句
模板、输出部分、输入部分及破坏描述部分。
gcc
中的内嵌
汇编
语言(Intel i386平台)
本文介绍Linux核心代码中的
汇编
语言,包括AT&T格式
汇编
语法及
gcc
内嵌
汇编
。AT&T与Intel格式语法差异大,如操作数表示、位置等。
gcc
的asm
语句
可在C代码
嵌入
汇编
,通过指令模板和限定字符串指定操作数,方便控制指令序列并与C语言良好接口。
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章