0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

汇编语言还有必要学习吗

硬件电路设计 来源:爱上电路设计 作者:爱上电路设计 2025-11-25 11:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、嵌入式操作系统需要汇编语言

2、实时性要求非常高的地方,需要汇编语言,比如FFT算法

3、汇编语言做运算那叫一个痛苦,下面是一段双字节乘法,浮点数就更难搞。

MUL16_16                             ;RES3:RES0=ARG1HARG2L                MOVF    ARG1L,W                MULWF   ARG2L                MOVFF   PRODH,RES1                MOVFF   PRODL,RES0
                MOVF    ARG1H,W                MULWF   ARG2H        ;ARG1H*ARG2H->PRODH:PRODL                MOVFF   PRODH,RES3                MOVFF   PRODL,RES2
                MOVF    ARG1L,W                MULWF   ARG2H        ;ARG1L*ARG2H->PRODH:PRODL                MOVF    PRODL,W                ADDWF   RES1,F       ;Add cross products                MOVF    PRODH,W                ADDWFC  RES2,F                CLRF    WREG                ADDWFC  RES3,F
                MOVF    ARG1H,W                MULWF   ARG2L        ;ARG1H*ARG2L->PRODH:PRODL                MOVF    PRODL,W                ADDWF   RES1,F       ;Add cross products                MOVF    PRODH,W                ADDWFC  RES2,F                CLRF    WREG                ADDWFC  RES3,F
                RETURN

我这里并不是鼓励一个项目全部使用汇编语言编程,比如一个3万多行代码的项目,如下图,其中function.c就已经有13763行。

wKgZPGjnHRmAfUWCAANc9-wHmOw316.png

全汇编的话编程难度将会剧增,也给日后修改维护带来很大的挑战。通常的做法是C语言嵌套汇编语言。

学习汇编可以更深层次的了解单片机工作原理,了解系统是如何启动的。

wKgZPGjnHRqAKs3OAALJUncRMsw001.png

掌握汇编是成为底层系统工程师、牛逼工程师的必备技能。其实汇编也没有那么恐怖,也就是那十几个常用的命令,再加上配套的伪指令,基本程序结构。不必纠结要不要学习,有时间的话马上学,正所谓技不压身。

wKgZPGjnHRqAMDIsAAKCKQYi2sc736.png

这是我早年做的一个项目,全汇编语言编写光点红外线光幕完整项目,本人曾经拓展到34光点。

wKgZPGjnHRqAaOfTAAOF4-gKkYI274.png

wKgZPGjnHRuAEEyvAAGuvP7J9No194.png

wKgZPGjnHRuAVjCaAAICB5pIl_U957.png


路漫漫其修远兮,吾将上下而求索。觉得不错,动动发财的小手点个赞哦!


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 汇编语言
    +关注

    关注

    14

    文章

    413

    浏览量

    39512
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在Keil中进行C代码与汇编代码的混合编程

    ,#1 B LOOPLOOP_END NOP END 2. 在寄存器中传递参数现在这里有一个 C 语言函数,一个在汇编语言中定义的函数 Init(),如果要使用在 C 语言函数中使用参数列表将参数传递
    发表于 01-23 06:36

    C语言主要特点

    。 5.语法限制不太严格,程序设计自由度大。 6.C语言允许直接访问物理地址,能进行位(bit)操作,能够实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言即具有高级语言的功
    发表于 01-05 07:41

    请问芯源CW32 MCU支持哪些汇编语言

    芯源CW32 MCU支持哪些汇编语言
    发表于 12-23 06:14

    C语言中可以嵌套汇编语言吗?

    请问C语言中可以嵌套汇编语言吗?
    发表于 12-15 08:14

    汇编语言的起源

    一、汇编语言是什么? 我们知道,CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。 这些指令都是二进制的,称为操作码
    发表于 11-20 07:19

    汇编寄存器的知识

    学习汇编语言,首先必须了解两个知识点:寄存器和内存模型。 先来看寄存器。CPU 本身只负责运算,不负责储存数据。数据一般都储存在内存之中,CPU 要用的时候就去内存读写数据。 但是,CPU
    发表于 11-20 06:45

    C语言和单片机C语言有什么差异

    汇编语言机器才能读懂,所以每个平台的编译器编译成对应平台汇编的程序,每个平台的汇编不一样,当然编译器也不一样。 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的编译器。具体
    发表于 11-14 07:55

    RVMCU课堂「7」: 手把手教你玩转RVSTAR—汇编程序篇

    相对于抽象层次更高的C/C++语言汇编语言是一门抽象层次比较低的语言,面向的是最底层的硬件,直接使用处理器的基本指令。虽然现在大多数的程序设计已经不再使用汇编语言,但是在一些特殊的场
    发表于 10-31 08:46

    RISC-V的工具链GCC内联汇编

    \", \"r2\" ); 总结 汇编语言抽象层次低,但程序编写难度大。我们在实际工程编写中可以去阅读完整的GNU汇编语法手册,里面有语法介绍可以进行学习与借鉴。
    发表于 10-30 06:59

    通过内联汇编调用乘法指令mulh\\mulhsu\\mulhu

    1.蜂鸟E203内核支持的乘法指令有四种(不含融合指令),分别为mul、mulh、mulhu与mulhsu。它们的汇编语言格式如下: mulrd,rs1, rs2 将两个32位整数相乘,取低
    发表于 10-24 06:52

    ARM入门学习方法分享

    )架构。学习ARM的开始可以从学习RISC和CISC架构的基础知识开始。 二、学习汇编语言:ARM架构的核心是汇编语言
    发表于 07-23 10:21

    汇编语言教学中文资料

    电子发烧友网站提供《汇编语言教学中文资料.rar》资料免费下载
    发表于 06-30 15:15 7次下载

    Windows环境下32位汇编语言中文资料

    电子发烧友网站提供《Windows环境下32位汇编语言中文资料.rar》资料免费下载
    发表于 06-30 15:14 0次下载

    单片机原理及应用

    和定时器等内部功能单元的应用技术、并行接口和串行接口的扩展方法,以及 Keil 软件和 Proteus 软件联合调试的方法等。书中大部分例题具有汇编语言和C51 语言的双语对照程序,便于读者选择学习。 获取完整文档资料可下
    发表于 06-16 16:58

    基于汇编语言的数字时钟

    发表于 06-03 15:49