找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4721|回复: 1
打印 上一主题 下一主题
收起左侧

中国第一代、第一台计算机—103计算机模拟器

[复制链接]
跳转到指定楼层
楼主
ID:165786 发表于 2019-7-12 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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版
    出版社:    科学出版社
========================================================
///////////////////////////////////////////////////////////////////////





评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:165786 发表于 2019-7-12 13:04 | 只看该作者
等抽时间把它移植到8052上,和Proteus仿真。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表