linux的内嵌汇编代码

这篇具有很好参考价值的文章主要介绍了linux的内嵌汇编代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

/* C语言实现MCR指令 */

#define __STRINGIFY(x) #x

#define __MCR(coproc, opcode_1, src, CRn, CRm, opcode_2)                          \

    __ASM volatile ("MCR " __STRINGIFY(p##coproc) ", " __STRINGIFY(opcode_1) ", " \

                    "%0, " __STRINGIFY(c##CRn) ", " __STRINGIFY(c##CRm) ", "      \

                    __STRINGIFY(opcode_2)                                         \

                    : : "r" (src) )

“\’”表示一行未写完,启用下一行

#define __STRINGIFY(x) #x  使用#表示将参数转换为字符串表面量

如_STRINGIFY(43)  展开后为“43”

p##coproc  先将coproc的参数带入,再将p和带入后的值连接起来,如coproc为15,则最终结果为p15,且是字符串“p15”.

_ASM 的宏展开为 _asm  表示这条语句是汇编语句,其中汇编语句的每一部分都有引号,

在使用 __asm 关键字插入汇编语句时,通常需要用引号将汇编语句括起来。这是因为引号告诉编译器这部分代码应该被视为汇编语句,而不是源代码中的其他内容。

使用引号括起汇编代码的好处是,它使得编译器能够正确地区分汇编指令和其他源代码部分。这有助于避免可能产生的语法冲突或混淆,因为汇编语言和高级编程语言的语法规则往往不同。通过使用引号,编译器能够准确地解析并识别汇编语句,将其传递给相应的汇编器进行处理。

此外,引号也有助于与其他代码元素进行区分,比如约束(constraints)、寄存器或变量名称等。引号可以将汇编代码与其他部分隔离开来,确保编译器能够正确解析并处理它们。

因此,使用引号将内联汇编语句括起来是一种通用的做法,以确保编译器能够正确理解和处理嵌入的汇编代码。文章来源地址https://www.toymoban.com/news/detail-623345.html

到了这里,关于linux的内嵌汇编代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】Android平板上远程连接Ubuntu服务器code-server进行代码开发

    准备一台虚拟机,Ubuntu或者centos都可以,这里以VMwhere ubuntu系统为例 下载code server服务,浏览器访问:https://github.com/coder/code-server,复制下载链接 打开ubuntu命令行下载 出现需要输入ubuntu的登录账户密码,输入密码即可,然后等待安装完成 以下信息表示安装成功 接着输入以下命

    2024年02月05日
    浏览(35)
  • 利用Figlet工具创建酷炫Linux Centos8服务器-登录欢迎界面-SHELL自动化编译安装代码

    因为我们需要生成需要的特定字符,所以需要在当前服务器中安装Figlet,默认没有安装包的,其实如果我们也只要在一台环境中安装,然后需要什么字符只要复制到需要的服务器中,并不需要所有都安装。同样的,我们也可以利用此生成的字符用到脚本运行的开始起头部分,

    2024年02月12日
    浏览(43)
  • 租服务器跑代码、pycharm连接服务器跑代码、Xshell连接服务器运行代码

    1.1 注册 推荐使用矩池云服务器,按时按量计费,服务器自带镜像可选,可将要运行的项目上传到网盘 注册网址:矩池云    1.2 租用 选择合适的租用 1.3 选择镜像 选择合适的系统镜像 1.4 复制命令  进入租用列表,复制命令 1.5 网盘使用  网盘可上传要运行的代码 2.1下载 h

    2024年02月21日
    浏览(30)
  • 迁移Linux服务器用户数据(将一个服务器的Linux用户数据迁移到另一个Linux服务器用户的流程)

    先来到根目录,再使用tar命令打包数据: tar czvf root.zip.gz ./* 在根目录使用指令: scp 打包好的数据 用户@ip:目的用户下的某个目录 源Linux服务器用户 : 查看压缩包是否到达: 对收到的数据进行解压,使用指令 tar xzvf root.zip.gz 解压到当前目录下。 目的Linux服务器用户 : 看到

    2024年02月08日
    浏览(37)
  • 【Linux学习笔记】Linux服务器:配置与管理samba服务器

    一、【linux学习笔记】红帽Linux 7.8系统在虚拟机上的安装 二、【Linux学习笔记】Linux系统的基本操作  三、【Linux学习笔记】管理Linux操作系统:用户管理  四、【Linux学习笔记】管理Linux操作系统:磁盘管理 五、【Linux学习笔记】管理Linux操作系统:软件安装  六、 【Linux学习

    2024年02月02日
    浏览(28)
  • linux服务器禁止ping命令,linux服务器禁ping如何解除

      我是艾西,在我们搭建网站或做某些程序时,不少人会问禁ping是什么意思,怎么操作的对于业务有哪些好处等,今天艾西一次给你们说清楚。 禁PING的意思是:不允许电脑、设备或服务器使用PING功能。一般情况下电脑、防火墙、服务器都是允许PING功能的,不需要特别设置

    2023年04月20日
    浏览(29)
  • Java中将本服务器的文件拷贝到另一个服务器(Linux to Linux)

    在Java中,将文件从一个服务器复制到另一个服务器,你可以使用Secure Copy(SCP)进行操作。Java中的 JSch 库可以进行此操作。 首先,需要添加 JSch 库依赖到你的项目中。如果你使用的是Maven,可以添加以下依赖: 以下是一个使用 JSch 进行SCP操作的示例: 这段代码首先创建了一

    2024年02月13日
    浏览(45)
  • Linux内网服务器通过代理访问外网服务器

    目录 一、环境介绍 二、安装squid 三、配置代理 扩展一、JAVA应用通过代理访问外网 扩展二、通过nginx代理实现yum跳转 扩展三、代理harbor镜像方式访问 192.168.7.131可以通外网 192.168.7.129不通外网 需要通过代理的方式实现192.168.7.129可以访问外网  1、在192.168.7.131主机(可以访问外

    2024年02月08日
    浏览(39)
  • 【Linux高性能服务器编程】——高性能服务器框架

      hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之高性能服务器框架介绍,在这篇文章中, 你将会学习到高效的创建自己的高性能服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解,希望能让大家更能了解网络编程技术!!! 希望这篇

    2024年04月25日
    浏览(34)
  • Linux - 进阶 NFS服务器 详解网络共享服务器 ( 预备知识)

               N  :  就是 网络 Network          F   :     就是  File  文件         S   :  system          简称为 网络文件系统                 官方   :               NFS 是一种古老的用于UNIX/LINUX主机之间进行文件共享的协议              Network  File  System 网

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包