千家信息网

C语言中怎么内嵌汇编语言

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,今天就跟大家聊聊有关C语言中怎么内嵌汇编语言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。部分代码如下:static inline void
千家信息网最后更新 2024年11月14日C语言中怎么内嵌汇编语言

今天就跟大家聊聊有关C语言中怎么内嵌汇编语言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

部分代码如下:

static inline void RestoreLocalPSR (portLONG newMask){    __asm__ __volatile__(    "mtcr   %0, psr \n"    :    :"r" (newMask)    :"memory"    );}

该函数实现功能:将入参newMask的值写入到psr寄存器,用于恢复现场。

C内嵌汇编格式

__asm__(

汇编语句部分

:输出部分

:输入部分

:破坏描述部分

);

C内嵌汇编描述

1)C内嵌汇编以关键字__asm__asm开始。如果使用volatile关键字,则表示告诉编译器不优化后续的代码。

2) 汇编语句部分:可以包含多条汇编语句,每条语句之间用"\n"或";",例:

    asm volatile(        "mfcr    %0, psr\n"        "lsri    %0, 16\n"        "sextb   %0\n"        :"=r"(vec)        :        );

注:汇编语句中的操作数可以使用占位符引用C语言变量,名称如下:%0,%1,…。

2) 输出部分:在汇编语言中被修改的C变量

3) 输入部分:作为参数输入到汇编语言中的C变量

注:输出和输入部分是针对汇编语句部分的输入和输出参数而言。例:如果汇编语言使用变量设置寄存器,则用输入部分;如果汇编语言从寄存器读取值,保存到变量,则用输出部分。

4) 破坏描述部分:通知编译器使用了哪些寄存器或内存。

5) 每个部分之间用":"隔开。汇编语句部分必不可少,其他部分可以省略。例:asm("nop"),实现空操作。

看完上述内容,你们对C语言中怎么内嵌汇编语言有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

部分 语言 语句 输入 变量 输出 汇编语言 寄存器 内容 之间 代码 关键 关键字 参数 编译器 编译 内存 函数 功能 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是计算机网络技术的定义 松江区工商软件开发哪家好 嵌入式软件开发应该学什么 万全服务器兼容性 列车级网络技术性能 服务器 windows7 网闸如何保证网络安全 网络安全宣传月答题 dsp芯片用什么软件开发 网络安全法律法规手抄报 爱奇艺数据库怎么选择 重庆移动服务器托管机构云服务器 单片机 软件开发招聘 淘房科技互联网产业园 广东智能软件开发方案 瑞幸咖啡软件开发总公司在吗 k8spod访问数据库 根据网络安全法的规定任何个人 网络安全体系迫在眉睫 软件开发没有独立显卡可以吗 数据库关系中的属性分类 怎么看sql数据库备份文件 纯手工链接不到任意服务器 大数据软件开发工程师中专 重庆应用软件开发收费报价表 襄阳做软件开发的公司 大学网络技术职能 如何更改接入点和服务器 我心中的网络安全观部队 怎么样从系统中导入数据库
0