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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-10 08:37:25

18

主题

95

回帖

513

积分

荣誉版主

积分
513
发表于 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单片机就搞定了






回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-23 14:03:23

13

主题

27

回帖

452

积分

中级会员

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

点评

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-10 08:37:25

18

主题

95

回帖

513

积分

荣誉版主

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-05-02 00:29:54

10

主题

1159

回帖

5121

积分

论坛元老

积分
5121
发表于 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, 2025-5-2 11:20 , Processed in 0.139540 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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