M3Sim中国第一代、第一台计算机—103电子管计算机模拟器
-------------------------------------------------------
整理以前研究玩写的东西,分享在这里。
103计算机模拟器exe.zip
(25.89 KB, 下载次数: 10)
模拟器运行方法:
M3Sim [标志...] program.m3
标志:
-t 跟踪执行
-tt
例:
;求平方根 x=sqrt(a) a=0.5
M3Sim sq.m3 -tt
结果:0.707107
;sin 计算程序1 ;x=0.5
M3Sim Sin.M3
结果= 0.3535533906
M3程序文件(program.m3)格式
--------------------------
;sin 计算程序1
; 1/2*sin((Pi/2)*x)
; x为RAD
; x=0.5 , 结果= 0.3535533906
; 符号位 1 表示负数
:0010 ;“:AAAA”以下的数据或指令磁鼓中开始地址
0 13 0001 0001 ;
0 24 0012 0002
0 33 0026 0000
0 30 0027 0000
0 33 0002 0000
0 30 0030 0000
0 33 0002 0000
0 30 0031 0000
0 33 0002 0000
0 30 0032 0000
0 33 0002 0000
0 30 0033 0000
0 23 0001 0002
0 74 0000 0004
1 00 0000 3604
0 00 0025 0343
1 00 1145 5325
0 02 4315 3667
1 24 5273 6350
0 62 2077 3250
:0004;返回地址
0 40 0002 0000;打印;
0 77 0000 0000;停机
:0001
;0 40 0000 0000;自变量x ;103计算机内部存储格式表示的数 0.5
=0.5 ;“=xxx”以十进制小数表示的实数,程序自动转化为103计算机内部存储格式
:0000
0 00 0000 00000;NS_E+
:0002
;放函数值
@0010 ;“@AAAA”程序开始执行的地址
======================================================
103机历史:
----------
我国第一台小型电子管数字计算机又称103型数字电子计算机,该机是基本按照前苏联提供的M-3小型数字电子计算机的图纸资料制成的。
1958年8月1日,我国第一台数字电子计算机——103机诞生。试制时称为"八一型"机,工业生产时定名为103机。北京有线电厂生产了36台,定名为DJS-1型计算机。
技术参数:
---------
用磁鼓作内存的容量为1024字,字长31位定点运算,存储器为1K磁鼓。
平均运算速度为每秒30次。经改进配置了磁心存储器,计算机的运算速度提高到每秒1800次。
103计算机大约使用了800个电子管,2000个氧化铜二极管,10000个阻容元件,分装400个插件插入3个机柜。
全机约有10000个接触点和50000个焊接点,耗电10千瓦。占地30-40平方米。
103机没有外部存储器装置。对于输入输出信息用纸带和电传打字机。
内存和数据结构:103机的磁鼓存储器具有1024个31位的数字或指令容量。存储器单元的位从左至右编号;最高(最左边)位的编号为0。
二进制定点数,包含一个符号位,其余30位表示数的绝对值。因此,整数部分是零,位1-30包含小数部分。
系统编程指令格式:
----------------
103机是两地址的机器。每个指令需要一个存储单元。排除最高位0不使用,位1-6为操作码,位7-18 - 第一个操作数的地址,位19-30 - 第二个操作数和结果的地址。
所有指令可以分为两组:算术逻辑和控制命令。
操作码格式为XY,其中X - 操作修饰(第一个八进制数字); Y - 操作代码(第二个八进制数字)。可能的代码值和算术逻辑表示于下表中。
表1
================================
X代码 修饰
------------------------------
0 b, r = a * b
1 r = a * b
2 b, r = r * a
3 r = r * a
4 b, r = a * b 结果被打印
5 r = |a| * |b|
6 b, r = r * a 结果被打印
7 r = |r| * |b|
================================
表2
================
Y代码 Y操作
---------------
0 加法
1 减去
2 除法
3 乘法
6 逻辑与
================
表1中,在指令码中a和b分别表示存储器单元:第一和第二地址;r:加法器的寄存器。
控制命令的代码总是需要两个八进制数字。命令的列表显示在表3。
表3
========================================================
操作码 操作名称 执行的操作
------------------------------------------------------------------------------------------------
07,27 输入 从穿孔带输入一个数字,写入第二地址,不保存在寄存器中
05,15 传送 第一地址的数传送到第二地址中,且保存在运算器Ay中
45,55 传输和打印 第一地址的数传送到第二地址,不保存在运算器Ay中,而且打印
24 无条件跳转 无条件跳转到第一地址,上次运算结果按第二地址写入磁鼓,且保存在运算器Ay中
64 无条件跳转 无条件跳转到第一地址,上次运算结果按第二地址写入磁鼓,且保存在运算器Ay中,而且打印
74 无条件跳转 无条件跳转到第二地址,上次运算结果的模数保存在运算器Ay中
34 条件分支 上次运算结果为'+',_跳转到第二地址;为'-',跳转到第一地址.
04,14,44,54,17,37,57,77:
停机 机器停止。
=========================================================
-------------------------------------------------------
参考书籍:
《M-3小型电子计算机》
作者: B.B.培雷斯基
出版日期: 1959年05月第1版
出版社: 科学出版社
《103电子计算机程序汇编》
作者: 中国科学院计算技术研究所编
出版日期: 1961年06月第1版
出版社: 科学出版社
========================================================
///////////////////////////////////////////////////////////////////////
|