从硬件到软件-历史上第一个汇编器的实现原理

从硬件到软件-历史上第一个汇编器的实现原理

      • 问题
      • 回答
        • 一、加载程序到硬件
        • 二、程序的编写与汇编器
        • 三、汇编器功能的扩展
        • 四、操作系统

在前面学习汇编语言的时候,对硬件和软件之间缺失的一环吐了下槽,后来在课程的问答论坛上提问,得到了比较满意的回答,虽然还不是很详细,但大体可以体会到了,也有了进一步学习的方向:硬件到软件的跳跃。
访问比较慢,可以备上梯子再访问,没有梯子多刷新几次也能加载出来。
实现的核心是自举(bootstrapping),回答也提到这是项目中很小的一步,应该在课程开源的模拟器中实现了。
现在把大神的回答转录整理如下。

问题

  1. 在没有高级语言,没有模拟器的情况下,第一个汇编器是怎么实现的/li>
  2. 二进制代码不是自动加载到CPU中的,这个“加载”从一开始是谁完成的果是CPU,那就是先有鸡还是先有蛋的问题。

回答

一、加载程序到硬件

加载程序到这个硬件,分成两步:

  1. 指定要加载的目标位置,是一个内存地址,可以由程序计数器指定。
  2. 手动设置一系列开关,实现加载的功能,将二进制模式(存储在某个非易失性存储设备(纸带等))输入到1中的目标内存地址中。

二、程序的编写与汇编器

加载的功能已经在一中实现了,那被加载的二进制模式从哪里来里就是汇编器引入的地方。

  1. 第一个汇编器是自己!将需要的功能编写为汇编代码,再手工把它转换成二进制操作码!然后通过一中实现的开关将它输入计算机,对芯片进行编程。
  2. 用这种方式编写的第一个程序是什么个非常简单的汇编器(因为必须手工汇编代码)!!!!!!(前人是怎么想出来的,太牛X了!!!)

三、汇编器功能的扩展

有了这个汇编器后,能做的事情慢慢就多起来了!!!

  1. 使用这个汇编器访问某种输入设备,将其从那里获得的代码汇编起来,并将结果存储在某种输出设备中。这里已经是操作系统的雏形了。
  2. 使用汇编器寻找在内存中固定位置的程序,并将输出写入存储内存中的其他固定位置。这个输出是一个支持更多功能的汇编器!!!
  3. 一直扩充汇编器的功能,直到支持整个指令集!!!

四、操作系统

三中扩充汇编器时,其实还正在开发一个监视程序(可以认为是一个非常原始的操作系统),该程序仅提供在开发的下一阶段使用到的工具所需的最低限度的服务。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月24日
下一篇 2020年6月24日

相关推荐