🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/开源蜂鸟E203/Nuclei Studio 扩展内联汇编
Nuclei Studio 扩展内联汇编
开源蜂鸟E203 作者 onliever 发布于 2023-05-31 16:05(1227 天前) 5594 浏览

团队编号:CICC1181
团队名称:芯火

在进行指令测试时,采用内联汇编的方式可以方便有效地进行针对性测试,下面以一条浮点指令为例展示。
内联汇编的格式为
asm ( assembler template
: output operands / optional /
: input operands / optional /
: list of clobbered registers / optional /
);
其中 assembler template 为汇编指令部分;
第一个冒号:后面接输出操作数;
第二个冒号:后面接输入操作数;
第三个冒号:破坏性描述,即指令改变的寄存器;
逗号分隔每个组中的操作数;一般最多可以指定10个操作数;如果没有输出操作数但有输入操作数,那么输出操作数前的冒号不能省。
图片alt

图片alt

全部回复 10
n
nn爱学习898 天前 · 1 楼

您好,打扰您,我改了工具链,识别了我的指令,生成verilog文件。我放在tb里用vivado去跑,显示是非法指令,请问这个会是什么原因呢

n
nn爱学习939 天前 · 2 楼
回复 onliever:

你写在汇编文件中的指令需要能被编译器识别,但写内联汇编可以直接定义指令格式,那条指令也就不需要编译器能识别了,建议你找下相关的资料学习一下怎么写

明白了,感谢感谢,卡好几天了

o
onliever939 天前 · 3 楼
回复 nn爱学习:

哦哦哦,那我有写汇编文件,但可能哪不对,要不咋没识别上,还是说软件需要设置什么吗

你写在汇编文件中的指令需要能被编译器识别,但写内联汇编可以直接定义指令格式,那条指令也就不需要编译器能识别了,建议你找下相关的资料学习一下怎么写

n
nn爱学习939 天前 · 4 楼
回复 onliever:

如果你是写的汇编文件,那确实不需要内联汇编,这是用在C/C++里的;不修改编译器的话,可以在内联汇编里直接定义指令模板

哦哦哦,那我有写汇编文件,但可能哪不对,要不咋没识别上,还是说软件需要设置什么吗

o
onliever939 天前 · 5 楼
回复 nn爱学习:

您好,那我不修改工具链的话,是需要写一个内联汇编吧,我还想问一下,汇编文件和内联汇编有区别吗

如果你是写的汇编文件,那确实不需要内联汇编,这是用在C/C++里的;不修改编译器的话,可以在内联汇编里直接定义指令模板

n
nn爱学习939 天前 · 6 楼
回复 onliever:

要么改编译器,要么用内联汇编去绕

谢谢您,我一直以为有.s汇编文件就不用写内联汇编了呢

o
onliever939 天前 · 7 楼

要么改编译器,要么用内联汇编去绕

n
nn爱学习939 天前 · 8 楼
回复 onliever:

你这是添加自定义指令后,编译出错吧?如果你用的原来的工具链,肯定是识别不了你的自定义指令啊

您好,那我不修改工具链的话,是需要写一个内联汇编吧,我还想问一下,汇编文件和内联汇编有区别吗

o
onliever939 天前 · 9 楼

你这是添加自定义指令后,编译出错吧?如果你用的原来的工具链,肯定是识别不了你的自定义指令啊

n
nn爱学习939 天前 · 10 楼

您好,我用nuclei studio ,不识别我添加的自定义指令,如下图,您知道怎么解决吗

💡 请 登录 后参与讨论(微信扫码即登录/注册)