- 主题:如果全部用汇编语言来写stm32
不是吧。。。memset应该是有32位优化的
【 在 dismoon 的大作中提到: 】
我写stm32程序至今都是RCC->AHBENR这样子直接赋值
甚至如果有批量char清零的操作,还会
union
{
long int A;
char B[4];
}
清零B的时候直接用A清实现一步操作节省tic
已经是保持可读性和可维护性之后最精简的办法了
然而,人脑终有限,真优化起来,编译器还是可以继续优化的
而汇编不会机器给你优化
综上所述,二流水平的人工汇编不及机器
【 在 mount 的大作中提到: 】
: 会不会让程序执行得飞快?
--
FROM 101.41.33.*
union里面4个char本来都是单独操作的,特定情况才需要整体清零,
比如你程序其他地方
B[0],B[1]会单独赋值,如果有一个代码需要同时清零B[0]~B[3],编译器不会一个32位清零,这时候就要像我这样子人工控制4句话变成1句话了
其实这个场景应用很小,只有时间要求很严格的时钟中断里才会用
【 在 tom6bj 的大作中提到: 】
: 不是吧。。。memset应该是有32位优化的
:
: 我写stm32程序至今都是RCC->AHBENR这样子直接赋值
: ...................
--
FROM 117.63.239.*
【 在 secondjet 的大作中提到: 】
: 我来回答版宠。
: 不会!因为你自己用汇编编写的质量肯定比不过编译器的优化质量,实现同样的功能,编译器出来的大概率比一般人写的更精简。
: 只有特定情况下汇编的效率更高,比如延时函数,用汇编可能更稳定,用高级语言写可能不同的优化等级出来的时长有一些抖动。
: ...................
完全同意!!!
--
FROM 223.104.3.*
看你跟什么比啊
跟python比,大概率汇编会快
【 在 mount 的大作中提到: 】
: 标 题: 如果全部用汇编语言来写stm32
: 发信站: 水木社区 (Fri Nov 11 16:49:14 2022), 站内
:
: 会不会让程序执行得飞快?
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 1.90.51.*]
--
FROM 123.118.7.*
你要这么快的单片机有啥用?
最快的是在FPGA上用带堆栈的状态机,连代码都不需要了,处理速度比最快的CPU还快几十倍
--
FROM 219.140.35.*
有一些个函数可以用汇编来写,尤其是涉及到计算的,这样执行效率更高,但是总体的构架
肯定是C
【 在 secondjet 的大作中提到: 】
: 我来回答版宠。
: 不会!因为你自己用汇编编写的质量肯定比不过编译器的优化质量,实现同样的功能,编译器出来的大概率比一般人写的更精简。
: 只有特定情况下汇编的效率更高,比如延时函数,用汇编可能更稳定,用高级语言写可能不同的优化等级出来的时长有一些抖动。
: ...................
--
FROM 124.65.226.*
你真是太坏了。。。哈哈
【 在 lvsoft 的大作中提到: 】
: 会的,
: 偷偷告诉你,其实用机器码写会更快,人芯合一的境界,能不快嘛
--
FROM 223.72.80.*
嗯,据说上古时代的大神都是拿着一把小刀在硬盘上刻出操作系统
【 在 mount 的大作中提到: 】
:
: 会不会让程序执行得飞快?
:
#发自zSMTH@MI MAX 2
--
FROM 58.243.250.*
光盘吧,刻硬盘的大神我见过的是拿着一块磁铁在硬盘上左右晃写硬盘的
【 在 chenyx 的大作中提到: 】
: 嗯,据说上古时代的大神都是拿着一把小刀在硬盘上刻出操作系统
:
: #发自zSMTH@MI MAX 2
--
FROM 114.228.211.*