找回密码
 立即注册
查看: 312|回复: 3

为啥大学基础教育还要坚持CISC指令集的8051教学?

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    14

    主题

    67

    回帖

    431

    积分

    荣誉版主

    积分
    431
    发表于 2023-7-7 11:18:39 | 显示全部楼层 |阅读模式
    本帖最后由 沈洁 于 2023-7-7 13:13 编辑

    一开始的处理器设计人员不知道RISC精简指令集处理器好设计吗?最少只需要35条指令集就可以编写所有程序了。为啥还要设计CISC复杂指令集处理器呢?

    有谁能说一下吗?




    其实很简单。就是因为那个时代没有强大的编译器。编译这个工作还是需要人类手工完成的。为了降低人类的工作量。所以CISC指令集就孕育而生了。

    古代的CISC指令集处理器的真实名字其实应该是,适合人类理解,快速编程的汇编指令集处理器。

    简单的说。CISC处理器的指令集不能太多,否则人类记不住,CISC的指令集成的功能又要尽可能的全,减少人类需要编写代码的数量。方便人类理解。

    这其实是在编译器和C语言发明之前,大规模使用汇编编程的唯一方法。



    这是常规的51的汇编代码。简单容易读懂。

    而现在的ARM汇编指令集代码呢?


    大家可以比较一下,基本就明白了。现代ARM的汇编代码基本已经不是人类能轻松阅读的了。

    汇编指令集的发展的三个阶段

    第一,方便人类编写和理解的汇编指令级 人类编程用CISC

    第二,使用机器编译,减少硬件资源,方便提高频率的 极简RISC指令集 最少只要35条指令集

    第三,使用机器编码,大幅度提高硬件利用率的  超长RISC指令集,或者现在称之为融合指令集。因为有微指令翻译器这个部件。所以只用考虑提高硬件利用率就足够了。输入的指令集有些处理器甚至可以编程改变,例如全美达的处理器


    全美达处理器的指令集是可以再编程改变的,也就是说全美达的处理器理论上可以运行任何指令集的程序。在这种情况下,如何提高指令集更合理调用硬件资源的效率,就变成了处理器第一要考虑的工作了。

    准确的说。现代ARM的指令数量已经远远超过了传统的CISC处理器的指令集数量了。岂不是简单指令集处理器比复杂指令集处理器的指令数量更多吗?

    其实现代的ARM应该称之为,高执行效率指令集。它的设计初衷其实是基于TI的超长指令级原理设计的。指令集越长,输入的信息越多。处理器单位时钟能执行的程序就越高效。

    这和精简指令集的设计初衷其实早就背道而驰了。只有那些指令集特别稀少的处理器。才能称之为真正的精简指令集处理器。不过无论是那种精简指令集处理器,都已经早就不再适合人类编写和学习了。

    毕竟这类指令集从一开始的设计目的就是让机器来编码。来解决指令集的翻译工作。

    讨论到这里,就可以回答大家,为啥大学基础教育还要坚持51单片机的编程教学了。

    因为51单片机是最后还广泛使用的,基于为人类汇编编程而设计的指令集系统处理器。

    在现在大量学生还在抱怨学习困难。单片机汇编难学的今天。51的 CISC指令集,就是学生掌握一门汇编语言,了解计算机底层运作逻辑,最容易学习的产品了。

    没有51单片机的CISC指令集,让这群没有经验的人去学习机器的RISC汇编,这基本就已经是一件不可能完成的任务了。

    简单说,51指令集单片机汇编,就是现在学生最容易上手的处理器汇编指令集了,没有之一


    并且对于有志于学习芯片设计的同学,51也是最方便获得verilogHDL源码的处理器核心,大家可以方便的在理解了51汇编代码之后,轻松修改51的代码。用来学习如何设计出更高效率的处理器系统。

    但是如果你不了解汇编系统的原理。这一切就无从谈起了。

    简单的说,51汇编,是现代学生能接触到的,最容易学习的汇编指令级系统了。没有之一。

    本人的51汇编就是纯自学的。WAVE编译器+一片2051单片机就搞定了






    回复 送花

    使用道具 举报

  • TA的每日心情

    2024-1-8 16:35
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    10

    主题

    18

    回帖

    352

    积分

    中级会员

    积分
    352
    发表于 2023-7-21 09:47:43 | 显示全部楼层
    但现在大学里是不是不怎么教汇编了

    点评

    没办法啊,学生都不想学啊,这才是问题啊,本来就难  详情 回复 发表于 2023-7-21 15:43
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    14

    主题

    67

    回帖

    431

    积分

    荣誉版主

    积分
    431
     楼主| 发表于 2023-7-21 15:43:38 | 显示全部楼层
    本帖最后由 沈洁 于 2023-7-21 15:45 编辑
    sbk100 发表于 2023-7-21 09:47
    但现在大学里是不是不怎么教汇编了

    没办法啊,学生都不想学啊,这才是问题啊,本来就难。但这却是衔接处理器设计,HDL芯片设计的敲门砖啊
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 169 天

    [LV.7]常住居民III

    9

    主题

    840

    回帖

    3305

    积分

    论坛元老

    积分
    3305
    发表于 2023-7-25 17:59:22 | 显示全部楼层
    可以从电路层面直观了解运算过程  学习汇编

    TD4 CPU  一个 4 位 CPU(中央处理)的可编程计算机系统
    TD4 CPU 仿真器
    https://vanya.jp.net/td4/

    https://github.com/johnsonwust/TD4-4BIT-CPU
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-11 15:54 , Processed in 0.061577 second(s), 44 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表