社区
Linux_Kernel
帖子详情
gcc里面的嵌入汇编语句
gougou606
2006-04-01 12:01:17
大家好
我问问在gcc里面的嵌入汇编语句中
例如:movl %%eax,%%ebx
test %%ebx,%%ebx
其中为什么要两个%%,小弟不懂
好有就是test %%ebx,%%ebx这句话 我觉得没有什么意义啊,这样测试了ebx的值还是不变啊???
...全文
374
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的值应该是不变的
gcc
中的内嵌
汇编
语言
在Linux的核心代码中,还是存在相当一部分的
汇编
语言代码。如果你想顺利阅读Linux代码的话,你不可能绕过这一部分代码。在Linux使用的
汇编
语言代码中,主要有两种格式:一种是直接写成
汇编
语言源程序的形式,这一部分主要是一些Linux的启动代码;另一部分则是利用
gcc
的内嵌式
汇编
语言
语句
asm嵌在Linux的C语言代码中的。这篇文章主要是介绍第二种形式的
汇编
语言代码。
linux下
gcc
编译
嵌入
了
汇编
的程序,Linux
GCC
内嵌
嵌入
汇编
程序基础知识
在Linux代码中很多地方都使用了这种形式的
汇编
语言,
嵌入
汇编
程序的格式如下:__asm__ __volatile__ (asm statements: outputs: inputs: registers-modified);asm statements是一组AT&T格式的
汇编
语言
语句
,每个
语句
一行,由\n分隔各行。所有的
语句
都被包裹在一对双引号内。其中使用的寄存器前面要加两个%%做前缀...
FFmpeg4.3系列之30:Linux+
GCC
+CMake+Qt开发
我将带领大家一起来学习:Linux+
GCC
+CMake+Qt开发FFmpeg;
GCC
、make、CMake的讲解;Ubuntu18编译FFmpeg和第三方插件;Ubuntu18配置Qt开发环境;Ubuntu8编译libx264和libx265;Centos7编译FFmpeg; 具体内容包括: Linux...
gcc
c语言
嵌入
arm
汇编
,
GCC
用C语言
嵌入
ARM
汇编
程序
在
嵌入
式
汇编
中,您可以将C语言表达式指定为
汇编
指令的操作数,而不必担心如何将C语言表达式的值读取到寄存器中以及如何将C语言表达式写入寄存器中. 计算结果返回到C变量. 您只需要告诉C语言表达式和程序中
汇编
指令操作数之间的对应关系,
GCC
就会自动插入代码以完成必要的操作.1. 简单的内联
汇编
示例:__ asm__ __volatile __(“ hlt”); “ __asm__”表示以下代码是内联汇...
GCC
嵌入
汇编
概述
GCC
嵌入
汇编
概述如果您是 Linux 内核的开发人员,您会发现自己经常要对与体系结构高度相关的功能进行编码或优化代码路径。您很可能是通过将
汇编
语言指令插入到 C
语句
的中间(又称为内联
汇编
的一种方法)来执行这些任务的。让我们看一下 Linux 中内联
汇编
的特定用法。(注:内联
汇编
即
嵌入
汇编
)GNU
汇编
程序简述让我们首先看一下 Linux 中使用的基本
汇编
程序语法。
GCC
(用于 Li
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章