DIY的测试版8位计算机完整原创电路和部分程序发布
把文件整理了一下,特开此帖上文件.
这里的电路和程序源码每行都是本人亲手编写,可以看出写得比较烂...里面有些程序是以前没有完全了解C语言的时候写的,有些不合适的地方。。。但是执行结果正确的。。过后再改了。。。转载请注明出处.
下面这些文件后面慢慢解释。
原贴链接: https://www.kechuang.org/t/59032

8位DIY计算机电路PDF文件下载:




8位DIY计算机电路_Protel原理图下载:


GB2312、ASCII、乘法器 二进制ROM文件下载:


本机专用C编译器源码下载:


本机部分应用程序下载:









231097


231001


231002

[修改于 5 年前 - 2014-11-30 13:51:38]

来自 计算机电子学
 
2014-11-29 01:39:28
1楼
坐等大神转换成HDL格式的。
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
2楼
本机还有很多嗨爆程序  后面慢慢更....
折叠评论
加载评论中,请稍候...
折叠评论
3楼
[s:39]搞得我也想去深入学学计算机原理了
折叠评论
加载评论中,请稍候...
折叠评论
4楼
出套件了叫一声哦[s:38]
折叠评论
加载评论中,请稍候...
折叠评论
5楼
大神什么时候出套件啊 。。。。膜拜中
折叠评论
加载评论中,请稍候...
折叠评论
6楼
坐等大神变成红石的。。。。
折叠评论
加载评论中,请稍候...
折叠评论
7楼
做出红石电路就牛了!
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
8楼
启动本机的方法:

1 . 把三个原理图和外部设备根据  "8位DIY计算机电路_IO"  这张图里的提示连接好, 用洞洞板飞线快的话一个多星期就搞定.

2 . 然后把 "GB2312_ASCII_MUL二进制文件.rar" 里面的bin文件分别烧入到 "8位DIY计算机电路_IO" 这张图里面的U71、U72、U69.

3 . 最后把应用程序bin文件烧入到  "8位DIY计算机电路_IO" 这张图里面的U84(开机运行ROM).

接上电源,按下 "8位DIY计算机电路_IO" 这张图里面的S2开机,就会运行烧入的程序.


"内存卡加载CPU.bin运行" 程序说明:

把这个程序的bin文件烧入到开机运行ROM.

这个程序上电的时候会搜索TF/SD卡根目录的 "CPU.bin" 文件,找到文件后会自动把文件数据载入到 "8位DIY计算机电路_IO" 这张图里面的U82和U83存储器(任务ROM,由SRAM组成),然后CPU就切换执行任务ROM里的程序.
TF/SD卡文件系统为FAT32.

这样搞临时调试程序比较方便.

[修改于 5 年前 - 2014-11-29 22:47:57]

折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
9楼
本机C编译器说明:

支持全局变量、局部变量、函数、头文件、字符串替换命令.


1.支持数据类型.

signed可以省略,会默认为有符号数.
char占1个字节,int占2个字节,long int占4个字节, 指针占2个字节.

signed char
signed int
signed long int
unsigned char
unsigned int
unsigned long int

signed char*
signed int*
signed long int*
unsigned char*
unsigned int*
unsigned long int*

signed char 一维数组
signed int 一维数组
signed long int 一维数组
unsigned char 一维数组
unsigned int 一维数组
unsigned long int 一维数组

16进制常量
10进制常量
8进制常量
字符常量


变量的物理地址定义方式.
@0xfffe char a,b;@
意思是修改当前变量的分配地址为0xfffe,然后变量a的地址就是0xfffe,b的地址是0xffff, 然后遇到第2个"@"分配地址会恢复,否则会一直加下去....




2.支持函数类型.
signed可以省略,会默认为有符号数.
char返回1个字节,int返回2个字节,long int返回4个字节, 指针返回2个字节.

void

signed char
signed int
signed long int
unsigned char
unsigned int
unsigned long int

signed char*
signed int*
signed long int*
unsigned char*
unsigned int*
unsigned long int*


函数分页定义方式.
void x()rom0 on
{
}
函数括号末尾加上"rom0"的意思是编译的时候把这个函数放在rom第0页,一页64KB,最多可以支持255页(16MB的ROM), 因为这个CPU程序计数器16位只能寻址64KB,也就是这里一个函数最大64KB, 怎么实现不同函数的页间调用。。这个是我觉得做得比较得意的地方~~ 后面有空讲.
后面那个"on"的意思就是这个函数是页间共享, 这样其他页的函数就可以调用本函数, 如果不加 "on" 其他页的函数不能调用本函数, 加 "on" 比不加 "on" 效率低.

如果不加 "rom0", 这个函数默认放在ROM第0页.




3.支持控制语句.

if - else
if - else if - else if - else if ......
while
do - while
for
goto
break
continue
return
rom_run
特殊控制语句 "rom_run" .
本机有两组ROM, 不管CPU当前执行的程序在哪个ROM,只要执行到rom_run后就会切换到另一组ROM的首地址开始运行, 而且还可以通过 _R1(CPU的R1寄存器) 传递一个数值给另一组ROM.



4.支持运算符(表达式里的运算符严格按照C优先级处理).

sizeof
()
[]
+
-
*
/
%
&
|
~
^
!
>
<
>=
<=
==
!=
++
--
&&
||
>>
<<
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
?:



5.可以表达式插入操作的CPU部件和指令:

_ACC
_R1
_R2
_R3
_C
_Z
_BIT0
_BIT1
_BIT2
_BIT3
_BIT4
_BIT5
_RAM
_NOP






本编译器的局部变量分配方法:

函数之间有调用关系分配地址不同,函数之间没有调用关系,分配地址相同.

下面这种调用关系的程序内存总占用约为1024字节.
void a()
{
  char x[1024];
}

void b()
{
  char x[1024];
}

main()
{
  a();
  b();
}


而下面这种调用关系的程序内存总占用约为2048字节.
void a()
{
  char x[1024];
}

void b()
{
  char x[1024];
  a();
}

main()
{
  a();
  b();
}
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
10楼
CPU没有调用指令,实现函数调用也是我觉得比较得意的[s::loveliness:][s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
11楼
引用 小八一3:
大神什么时候出套件啊 。。。。膜拜中
估计下个月就有套件了..
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
12楼
引用 sszxlsy:
出套件了叫一声哦
OK
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
13楼
在这里对一个变量加1的话用 "++i" 比 "i++" 效率高, 因为"++i" 直接等效 "(i = i+1)", 而"i++" 等效 "(j = i ,++i , j)",然后把 "j" 变量放到表达式里面 "i" 的位置, 这里的j是编译器临时分配的一个用于存放中间运算结果的内存单元.
折叠评论
加载评论中,请稍候...
折叠评论
2014-11-30 10:30:58
14楼
OK 下个月搞一套玩玩
折叠评论
加载评论中,请稍候...
折叠评论
15楼
出套件了必入一套。。。
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
16楼
顶楼的电路文件刚刚修正了一个BUG,... 看来我的第6感不错... 我说怎么感觉好像哪里不对.
改正的电路是 "8位DIY计算机电路_IO" 这张图.
图片上面那些图元的符号有点乱了.. 引脚上面的杠符号错位.  用protel看原理图比较好.

231100


231101
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-2 03:49:27
2014-12-2 03:49:27
17楼
今晚楼主没有出现,顿时觉得整个人的不好了[s::loveliness:]
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-3 00:47:44
神之觉醒(作者)
18楼
引用 虎哥:
今晚楼主没有出现,顿时觉得整个人的不好了
[s::funk:]~~正在研究中~~[s::kiss:]
折叠评论
加载评论中,请稍候...
折叠评论
19楼
等待大神的套件来学习
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-4 07:40:48
20楼
同样等套件(最好是印制板),下学期学了计算机拿这个实践一下,这个好神奇
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-7 01:53:08
2014-12-7 01:53:08
神之觉醒(作者)
21楼
....正在搞个装BI的程序  改天晒晒 ..   这个程序太装BI了   小心亮瞎[s::lol]
这台机终于发现频率不能跑高的原因了...  原来是电源线的VCC布线有问题,  改了一下 CPU主频完美回归25MHZ, HTTP服务器传输速度60+KB/S, 数据不出错,   频率应该还可以跑更高.
231353
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
22楼
真好玩[s:;P]
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-8 03:40:38
2014-12-8 03:40:38
神之觉醒(作者)
23楼
这样搞会不会装大了= =...  程序还没做完.

点击此处查看视频

231474


231475


231476
折叠评论
加载评论中,请稍候...
折叠评论
24楼
WOW 赶上直播了吗? 好棒!!!!
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-9 22:16:18
2014-12-9 22:16:18
神之觉醒(作者)
25楼
引用 张静茹:
WOW 赶上直播了吗? 好棒!!!!
[s::$] 现在突然发现 随随便便一搭 电脑就出来撩... 搞进去才发现没有多少东西~ 其实不用搞得这么复杂 就是通和断1和0  然后再研究一下别人定义的东西就差不多了,  说不定什么时候有灵感 一不留神又想出个更吊的结构就爽,  几年前还觉得程序猿是个很神奇的东西 搞得差不多先 看来应该要写本DIY秘籍
折叠评论
加载评论中,请稍候...
折叠评论
26楼
引用 神之觉醒:
这样搞会不会装大了= =...  程序还没做完.

http://www.tudou.com/v/eab-U44Q9rU/&rpid=47973396&resourceId=47973396_04_05_99/v.swf
这难道是KCOS0.0.1版[s::funk:]
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
27楼
引用 LED:
这难道是KCOS0.0.1版
没错  正在内测中~~~~&^&*^  边写边测  边测边写
折叠评论
加载评论中,请稍候...
折叠评论
28楼
引用 神之觉醒:
现在突然发现 随随便便一搭 电脑就出来撩... 搞进去才发现没有多少东西~ 其实不用搞得这么复杂 就是通和断1和0  然后再研究一下别人定义的东西就差不多了,  说不定什么时候有灵感 一不留神又想出个更吊的结构就爽,  几年前还觉得程序猿是...
是啊,好多东西自己做出来就觉得,也就那么回事
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-22 17:50:04
2014-12-22 17:50:04
神之觉醒(作者)
29楼
放角落, 一直在运行HTTP服务器程序  还没死过机,  IP的原因, 目前只能局域网服务[s::L]
232395
折叠评论
加载评论中,请稍候...
折叠评论
2014-12-23 21:13:12
2014-12-23 21:13:12
30楼
龙少,你搞么叨的电路让我很爽
折叠评论
加载评论中,请稍候...
折叠评论
2015-2-17 23:22:27
2015-2-17 23:22:27
31楼
太羡慕,高手呀。真心不懂这个,只会在别人的基础上学习编程
折叠评论
加载评论中,请稍候...
折叠评论
32楼
我屌,楼主太强悍了!
折叠评论
加载评论中,请稍候...
折叠评论
2015-2-18 00:42:49
33楼
膜拜大神
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
34楼
引用 mvip:
太羡慕,高手呀。真心不懂这个,只会在别人的基础上学习编程
本贴这台机搞得太破烂--  有更加好的电路和最新的方案:
https://www.kechuang.org/t/68167
https://www.kechuang.org/t/69505
折叠评论
加载评论中,请稍候...
折叠评论
35楼
弱问那个编译器是用yacc+lex写的吗?
折叠评论
加载评论中,请稍候...
折叠评论
2015-2-21 12:46:42
2015-2-21 12:46:42
36楼
太强悍了,资料也很齐全
折叠评论
加载评论中,请稍候...
折叠评论
2015-2-22 11:09:25
37楼
强人呀,碉堡了。
折叠评论
加载评论中,请稍候...
折叠评论
38楼
编译器好用吗
折叠评论
1
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
39楼
引用 zepan:
弱问那个编译器是用yacc+lex写的吗?
用国产易语言写的[s:;P]  表示支持国货;
折叠评论
加载评论中,请稍候...
折叠评论
神之觉醒(作者)
40楼
引用 edaboy:
编译器好用吗
还可以~  不是很完美
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-9 15:13:09
2015-3-9 15:13:09
41楼
我的神呀如此强大
折叠评论
加载评论中,请稍候...
折叠评论
2015-7-14 15:47:55
2015-7-14 15:47:55
42楼
引用 分析纯_金:
坐等大神变成红石的。。。。
Mincraft玩家[s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
43楼
引用 t502187408:
做出红石电路就牛了!
Mincraft玩家[s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
44楼
先凑钱,表示支持套件


期待16位的[s::lol][s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
2015-7-22 21:18:01
2015-7-22 21:18:01
神之觉醒(作者)
45楼
引用 CES747MAYDAY:
先凑钱,表示支持套件


期待16位的
弄个32位的.. ~
折叠评论
加载评论中,请稍候...
折叠评论
2016-4-23 15:45:37
2016-4-23 15:45:37
46楼
还有很多程序
折叠评论
加载评论中,请稍候...
折叠评论
47楼
搞得我也想去深入学学计算机原理
折叠评论
加载评论中,请稍候...
折叠评论
2016-4-24 12:24:11
48楼
不错不错
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png