加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

我的电脑生涯(3):汇编程序

(2011-08-14 08:42:45)
标签:

黄维刚

汇编程序

管理程序

汇编语言

机器语言

it

分类: 电脑与智能手机

2)如何把用汇编语言写好的程序变成可以执行的机器代码?

 

计算机有内存,内存里可以放两样东西:程序和数据。程序是让计算机干活的指令,数据是它干活时使用的材料。把这两样东西放在一起,是按计算机先驱者冯·诺依曼( John Von Neumann,1903-1957)的指导思想而设计的,正因为有在这样的设计下,计算机才有了极大的灵活性,这是他伟大之处。这两样东西从形式上是没有区别的,换句话说,指令也可以被当成数据来运算,数据也许也是干某个工作的指令。随便从机器里挑出一个内存单元你来问我,这里面是指令还是数据,我还真无法回答。

 

启动纸带读入机,把纸带上用汇编语言写好的程序读入到计算机内存后,内存里面存放的东西,就都是类似“LD A,008”这样的一些ASCII代码,例如,这个内存单元里面放的是字母“L”,下一个单元里放的是“D”,等等。这些内容并不是计算机的机器语言,所以计算机是不懂的,现在的任务就是要把这些用汇编语言写好的程序翻译成机器语言。

 

如果翻译工作由人来做,那效率就太低了,应该让机器来做。做这个翻译工作的程序,就叫做汇编程序。

 

换句话说,刚才读入计算机的那些程序,只不过是汇编程序干活的材料而已,哈哈我的电脑生涯(3):汇编程序。那么我们需要的汇编程序在哪里呢?

 

非常遗憾的是,我工作的这台计算机,连汇编程序都没有!它是一台很新的机器,出厂的时候,除了机器本身和一本指令集的说明书以外,什么软件都没有!这种机器有一个说法:裸机。按理说,一台计算机出厂,厂家就应该同时给用户提供一些被称之为系统软件的最基本软件,汇编程序就是必须提供的软件之一,但是这台机器没有。这只能说明该机器刚刚被设计制造出来,还没有人做过这项工作。这种情况,也正是当时整个中国计算机工业的缩影,一切都在起步阶段。既然如此,只好由我们自己来做。

 

当时首先需要为它开发的软件有两个:管理程序和汇编程序。

 

管理程序,就相当于现在的WINDOWS,其任务是管理该机一切最底层工作的,例如驱动纸带读入机,驱动打印机,驱动纸带穿孔机,内存管理等等。由于该机实在是太简陋了,内存这么小,所以这个软件不可能有多大能力,把它叫操作系统有点言过其实,所以称之为管理程序。

 

汇编程序,就是负责把用汇编语言写好的程序翻译成机器语言。

 

在前面的文章里我说过,黄维刚是我们这里的技术尖子,编写管理程序的任务,就落到了他的头上。而我,则担负起为这个机器编写汇编程序的任务。因为他是学计算机的,所以他帮我设计了汇编程序的框图,我在工作中如果有问题,随时向他请教。

 

这台计算机,内存只有4K,黄维刚的管理程序开发完之后,光管理程序就占了2K,哈哈。如果我的汇编程序要在管理程序管理下,那也没法工作了,因为内存不够用了。所以,我开发的汇编程序,是不需要管理程序的,也是一个可以单独运行的独立程序,就是说,不论是读入纸带内容,还是输出数据在纸带上穿孔,都需要我用机器指令去指挥相关设备。那时候,外部设备都是非智能的,要让它的穿孔机动作,都必须发出很多细节的命令才行,所以必须和有关外部设备的技术人员相互配合才行。

 

我,一个刚摸计算机的新手,就要为这台机器开发汇编程序,其难度可想而知。幸亏有了一位非常棒的老师,那就在干中学吧!

 

大概用了半个月,他的管理程序和我的汇编程序都完成了。我的汇编程序也占用2K内存,启动我的程序后,就可以读入已经穿孔好的用汇编语言写的程序,把它们存放在剩下的2K内存里,对它们进行翻译,翻译之后的机器代码,再输出制作成穿孔纸带,以备运行该程序的时候使用。

 

因为这台计算机有一个磁鼓作为外存,像管理程序和汇编程序这样的系统软件,平时就存放在磁鼓里,别人要用的时候,就调入内存来执行。

 

通过这段工作,我发现,编程并不需要用到大学里学的什么微积分之类的高等数学,中学的知识已经足够,它需要的只是严密的逻辑思维和判断分析能力,对于在中学数学成绩很好的我来说,这种工作最适合我。编程不可能一次成功,因为人脑没有电脑那么严谨,随便一个疏忽,计算机就会做错事情,所以调试程序非常重要,它好像是猜谜语一样,要动脑筋判断,很富有挑战性。这正是编程最有魅力的地方。

 

当然,我这样说,不是说搞电脑的人不需要上大学。但是我一向认为,大学培养的主要是独立分析问题的能力,学什么专业是其次。你看看已经工作了的大学毕业生,有几个是专业对口的?真正的能力,是在工作中培养的出来的,真正的知识,是从实践中获得的。

 

另外,在大学后期,我由于陷于恋爱中,后来又失恋了,专业课程没有好好读,所以让我搞概率论与数理统计方面的工作,对我有点吃力。

 

一方面对搞概率论吃力,一方面编程工作有魅力,这就注定了我以后会朝着自己喜欢的方向去发展了。我至今一直认为,人最好去做自己喜欢的事情,这样才有动力,这样才会不怕困难,这样才会刻苦钻研知识,才会发挥自己的最大潜能。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有