吕辰拆开信封,把稿纸摊在桌上。
最上面是一页手写的信笺,字迹潦草,行云流水,如江水奔流,大概是赶时间。
“吕辰:指令集仿真模型已按约定完成。附《精简指令集体系结构与编码表》《仿真器使用说明》《测试向量集》。模型已于北大计算中心跑通,可在午马机上直接运行。可先模拟验证功能,有问题随时联系。许。”
信笺下面,是厚厚一本《精简指令集体系结构与编码表》,A4纸,钢笔手写,每一页都画着表格,工工整整。
吕辰翻开第一页,是一张总表。
工业计算机精简指令集
指令条数48条。
指令字长16位。
操作码8位(支持256种,当前使用48种,预留208种)。
寻址方式,立即寻址、直接寻址、寄存器寻址、寄存器间接寻址。
通用寄存器8个(R0-R7),每个16位。
8级中断,硬件自动压栈。
八大类,每类下列了具体指令。
吕辰一页一页地翻,理论组非常用心。
每一条指令的编码、操作数、执行周期、影响的状态位,都写得清清楚楚。
有些指令还附了使用示例,旁边用红笔标注了典型应用场景,一看就是从1867个基本操作里提炼出来的。
他合上本子,立即召集人。
不到一刻钟,钱兰、诸葛彪、曾祺都到了。
几个人围坐在吕辰办公室的桌前,传阅那份《精简指令集体系结构与编码表》。
钱兰看得最仔细,每一页都要看两三分钟,偶尔在笔记本上记几笔。
诸葛彪叼着烟,眯着眼睛翻,翻到中间一页停了下来。
“48条指令,8位操作码,预留了208种扩展空间。许教授这是给咱们留了后路。”
吕辰点了点头:“不止。你看寻址方式,寄存器间接寻址都有了。这是正经的计算机指令集,不是凑合出来的。”
诸葛彪翻到最后一页,是那张《仿真器使用说明》。
“许教授已经把仿真器写好了,在午马机上编译就能跑。测试向量也附了,涵盖了我们那73类通用逻辑里的典型操作。”
曾祺靠在椅背上,手指在桌面上轻轻敲着:“不用等了,上机跑吧。”
来到星河cAd系统机房,吴国华等人和计算机所、6305厂、理论组的工程师正在给系统升级。
听说要上机跑工业计算机的精简指令集。
吴国华自告奋勇,来到中央存储柜旁边的管理员终端前。
他把那张《仿真器使用说明》摊在桌上,左手翻着,右手在键盘上敲。
吕辰、钱兰、诸葛彪、曾祺站在他身后,盯着屏幕。
屏幕上,绿色的提示符在跳动。
吴国华敲了一行命令:
db> LoAd SImULAtoR FRom tApE
磁带机嗡嗡地转了几秒,屏幕上跳出一行字:
SImULAto INStRU
吴国华又敲了一行:
db> RU_VEctoR_1
屏幕上开始跳动数据。
第一条测试向量:测试算术逻辑类指令。
Add R1、R2 → R1=5、R2=3 → 结果应为8
模拟器逐条解释执行,屏幕上每执行一条就输出一行:
Add R1,R2 : pASS (8)
SUb R3,R4 : pASS (2)
ANd R5,R6 : pASS (0x00F0)
……
一行一行的绿色“pASS”在屏幕上刷新。
钱兰在笔记本上记录着每一条指令的测试结果,笔尖沙沙作响。
诸葛彪靠在机柜上,眼睛盯着屏幕,一动不动。
测试向量1跑完,38条指令全部通过。
吴国华又敲了第二组测试向量,分支跳转类。
Jmp 0x100 → 程序计数器应变为0x100
bZ R0、LAbEL → R0=0时应跳转
模拟器逐条执行,屏幕上再次跳出绿色的“pASS”。
第三组:数据传送类。
moV R1、#0x1234 → R1应为0x1234
LoAd R2、[0x200] → 从内存地址0x200读取数据到R2
StoRE R3、[0x300] → 将R3写入内存地址0x300
全部通过。
第四组:I/o读写类。
IN R1、poRt_0 → 从端口0读入数据到R1
oUt poRt_1、R2 → 将