C语言中怎么内嵌汇编语言
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,今天就跟大家聊聊有关C语言中怎么内嵌汇编语言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。部分代码如下:static inline void
千家信息网最后更新 2024年11月30日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安全错误
数据库的锁怎样保障安全
数据库跳转网站支付
数据库第二版实验四
用美国软件开发的软件
崇明区网络营销网络技术中心收费
么数据库集群
嘉兴计算机网络技术有哪些
阿里云oracle数据库
应用服务器查看与数据库监听
php数据库查询模版
天下手游双线服务器
嘉兴应用软件开发管理
链接网络安全凭据
手机 免费代理服务器
什么是网络技术品牌
信息发展网络安全
安卓数据库备份系统
cvm服务器下载模拟器
军营网络安全我有责讨论交流
静电是造成计算机网络安全
梦云服务器
garena服务器招聘
计算机网络技术实训教案
蓝海服务器
网络安全案件视频
电脑怎么运行远程服务器
四川安卓软件开发哪里好
福相随福建互联网科技
济宁移动网络技术大比武
网络安全工程师没有职位
怎样保证家用网络安全