1
iscraft 2014-11-26 10:43:41 +08:00
不明觉厉啊
|
2
hansnow 2014-11-26 10:48:04 +08:00 via Android
赞!最近在学微机原理,感觉很有帮助啊
|
3
deben 2014-11-26 10:52:10 +08:00
搞个4块钱的51单片机,用汇编来写程序不是更爽?哈哈!
|
5
ibudao OP @deben 汇编不是目的,了解其中的运行原理才是我的本意啊。c代码也是先编译成汇编再运行的,所以下一步是实现一个高级语言来写程序。
|
6
Mutoo 2014-11-26 11:35:43 +08:00
|
7
s51431980 2014-11-26 11:35:48 +08:00
楼主是看什么书整的,我也看了一些编译和程序语言的书,但没有做出过一点东西来
|
9
wcp1231 2014-11-26 12:01:42 +08:00
大学完全没接触过汇编,想入手这个项目需要什么知识不?还是我直接去看代码就好了?
|
10
madeye 2014-11-26 12:07:03 +08:00
|
11
ibudao OP @s51431980 经典的书在豆瓣上看排行就能找到,不过我倒是推荐你一些类似自制操作系统/编程语言的书,以及一些小型的项目,如:c4,tinyvm,因为这些更容易驱动你动手实践。
|
12
ibudao OP @wcp1231 如果你能看懂js的话就直接看代码,因为核心就是围绕fetch-decode-execute来的,很多代码都是相似的。之所以有汇编是因为总不能拿数字写程序吧。如果有不明白的地方,我很乐意跟你一起探讨。
|
13
jiang42 2014-11-26 12:28:29 +08:00
程序语言原理不用虚拟机也能学-。-
|
16
feiyuanqiu 2014-11-26 13:10:14 +08:00
好厉害,我还知道一个js写的x86虚拟机 http://copy.sh/v86/
同样想了解下楼主看的什么书? 我之前买了 csapp、汇编语言、Orange S:一个操作系统的实现,一直没时间看,感觉自己离底层好遥远,看了没什么用处... |
17
ibudao OP @feiyuanqiu 我也买了这些书,类似的还有 程序员的自我修养,自制操作系统等,大部分也没时间看。其实如我在13楼说的,你需要的是迈出第一步:动手写,哪怕是最基本的功能。在实现的过程中你肯定还会回来翻这些书的,到时你就知道用处了。其实我写的这个就是相当简单,并且我是参考b32的指令集来实现的,一点也不复杂,你可以试试。
|
18
bcxx 2014-11-26 13:29:46 +08:00
|
20
ffffwh 2014-11-26 14:30:45 +08:00
这叫计算机**原理。程序语言原理是更加偏向数学、逻辑的那种东西。
|
21
ibudao OP @ffffwh 程序语言原理是我的最终目的,这个东西仅仅是第一步,如果不了解计算机**原理,谈何实现一个高级语言虚拟机呢。对我来说,直接啃那些程序语言原理的书效果太差,所以才打算边coding边学习。如果兄台有好的方式,还请不吝赐教。
|
23
jeansfish 2014-11-26 15:49:17 +08:00
有本书《自己动手写操作系统》
|
25
liuzhedash 2014-11-26 18:22:56 +08:00
http://bellard.org/jslinux/
这个也可以看一下 |
26
leiliang 2014-11-26 18:28:14 +08:00
没人想过把这个做成一个游戏吗?@ibudao
|
29
jedihy 2014-11-29 09:44:22 +08:00
这个是哪种汇编呀,怎么跟我常用的不一样?
|
30
husinhu 2014-11-29 17:20:45 +08:00
+1 for mentioning fabrice bellard.
js实现,考不考虑浮点数,还是只支持整型运算,会不会模拟浮点寄存器 |