包教授追问:“翻译器的效率呢?重新编译后的代码,性能损失多少?”
陈茂林想了想:“目标是损失不超过10%。这个目标不低,需要微程序设计师和编译器的开发者紧密配合。”
包教授点了点头,没再追问。
陈茂林回到座位上。
汪涵教授站起来,走到主席台前。
他鬓角的白发又多了几根,眼睛下面的青黑已经扩展到整个眼眶,显然一直在熬夜。
“同志们,下面我汇报昆仑汇编语言的设计规则。”
他翻开笔记本,念了一段。
“昆仑1机的4863条微程序,是‘机器语言’。只有极少数人能写。要让昆仑系列被全国工程师使用,必须有一套统一的汇编语言。”
他放下笔记本,走到白板前,拿起记号笔。
“昆仑1是向量机,指令集与标量机完全不同。各单位自研的小型机指令集互不兼容,工程师写一套代码,只能在特定机器上跑,重复劳动。我们要做的是,一套汇编语言,能在昆仑1上跑,能在昆仑2上跑,能在以后所有的昆仑机上跑。”
他在白板上写了三个词:可读性、正交性、可扩展性。
“第一条,可读性。汇编指令不是给机器看的,是给人看的。每条指令要有直观的助记符。工程师看到MOV就知道是数据传送,看到ADD就知道是加法,看到JMP就知道是跳转。不需要查手册。”
“第二条,正交性。指令格式要统一,操作数的组合要规整。不能让工程师背几十种特殊规则。比如,所有算术指令的格式都是‘OP 目标, 源’。MOV是‘MOV 目标, 源’,ADD也是‘ADD 目标, 源’。格式一致,学一条就会一百条。”
“第三条,可扩展性。昆仑2之后还有昆仑3、昆仑4。汇编语言要能向后兼容。昆仑2上写的程序,到了昆仑3不能重写。所以指令编码要留余量,操作码不能塞满,要给未来预留空间。”
他在白板上画了一个表格。
“指令类型,我们分了五大类。”
“第一,数据传输。负责寄存器和存储器之间的数据搬移。”
“第二,算数运算。数数和浮点的加减乘除。”
“第三,逻辑运算。位运算和移位。”
“第四,转移控制。条件跳转、无条件跳转、子程序调用。”
“第五,输入输出。从I/O端口读数据、写数据。”
他放下记号笔:“一条汇编指令,通过翻译器,对应若干条微程序。工程师写MOV,翻译器自动生成取数据、送数据、存数据、更新指针的微程序序列。工程师不需要知道微程序长什么样,他只需要知道MOV是干什么的。”
四机部某院的一位专家举手,他骨瘦如柴,脸上老人斑密布,站起来颤巍巍的:“小汪,翻译器的规范,和汇编语言同步制定?”
“对。”汪涵教授点了点头,“翻译器是连接‘工程师语言’和‘机器语言’的桥梁。汇编语言定了,翻译器的规范也要同步定。没有翻译器,汇编语言就是纸上谈兵。”
老专家又问:“翻译器谁来写?”
汪涵教授想了想:“‘微程序生成’‘语法分析’和‘代码优化’都由微程序设计院来写。”
老专家点了点头。
汪涵教授继续说道:“1970年底,技术白皮书定稿。1971年,翻译器原型开发。1972年,在昆仑1机上验证运行。1973年,向全国发布。”
他合上笔记本,看着台下。
“汇编语言的事,我就汇报到这里。”
台下掌声响起来,汪涵教授回到座位上,端起搪瓷缸子喝了一口水。
茶已经凉了,但他喝得很踏实。
喜欢四合院:我是雨水表哥请大家收藏:(m.xtyxsw.org)四合院:我是雨水表哥天悦小说网更新速度全网最快。