|
主题 : : 程序怎么让cpu执行 [待解决] |
回复[ 8次 ]
点击[ 1005次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2007-10-27 20:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:16
信誉值:6
注册日期:2007-06-26 16:56 |
1 cpu执行的是什么?
2 如果没有操作系统你的”程序“如何让cpu执行呢?
3 操作系统是怎么让程序执行的? | | |
|
|
|
|
[第1楼]
[ 回复时间:2007-10-28 00:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06 |
1.cpu执行的不是指令吗?
2.开机后,cpu执行完ffff:0处的跳转指令后,转去执行BIOS中的硬件系统检测和初始化程序,完成后,调用int 19h进行操作系统的引导,将操作系统的引导程序装到0:7c00处,设置cpu从0:7c00处开始执行。如果没有操作系统
,我们就可以将自己写的程序来替代操作系统的引导程序,来得以执行。
3.不知楼主的“程序”是操作系统程序还是用户的程序,如果是前者答案同上,如果是后者那应该是操作系统内部的问题了吧。
个人愚见,献丑了,哈哈!望高手们给于讨论指点! | | |
|
|
|
|
[第2楼]
[ 回复时间:2007-10-28 09:27 ]
[引用]
[回复]
[ top ] | |
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10 |
|
|
|
|
|
[第3楼]
[ 回复时间:2007-10-28 13:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:16
信誉值:6
注册日期:2007-06-26 16:56 |
能被cpu执行的一定是cpu指令集中的指令,指令来自那里,是在内存里的 ,那么谁负责装载它们呢?
如果你能,那就可以是你了 ,王老师《汇编语言》中”编程平台是硬件而不是操作系统“,于是我有了上面的问题,没有操作系统的话,我们写的代码只能自己想办法放到内存,再让cs ip 指向那里 。比如把代码放到引导扇区,也许你可以把它们放到ffff:0处,不过如果这样你的放到那里的代码是不能用汇编写的得用机器指令了……
说远了,我问这些问题 就是大家一起思考一下
程序是什么?它是一系列最终要让cpu执行的指令。
程序怎么执行?被加载到内存,并让cs:ip执向它的开始处。
还有,操作系统其实是个特别的程序,它可以把它认识的程序加载到内存并且修改cs:ip,以使它能够运行。
这是我的想法,如果有说的不对的地方,请大家指教。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2007-10-28 17:22 ]
[引用]
[回复]
[ top ] | |
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42 |
编程平台是硬件而不是操作系统
==========================
一句话,让人对操作系统的神秘面目看了个清楚啊! | | |
|
|
|
|
[第5楼]
[ 回复时间:2007-11-01 20:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:19
信誉值:0
注册日期:2007-07-05 17:25 |
楼主的问题不错。
装着问题看书,在看书的不断深入,所有的问题都会慢慢迎刃而解的。
1:cpu 执行的都是你敲进去的代码,说更详细了那就是代码转换而成的由0和1组成的数据,组成原理会讲到。
2:cpu 的 cs:ip 指向哪里就把那里的数据作为代码执行。如果没有操作系统就把你的程序放在内存的FFFF:0处。
开机后,cpu 自动进入到FFFF:0处执行。
3:操作系统把 cpu 的控制权交给你的程序,你的程序就能执行了。也就是说操作系统会把 cs:ip 指向你的程序,
当你的程序执行完了要把 cpu 控制权转交给操作系统的。mov ax,4c00h int 21h 这就是实现的这个功能。 | | |
|
|
|
|
[第6楼]
[ 回复时间:2007-11-05 22:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2007-10-03 16:26 |
要想真正明白cpu执行的过程,是要学电路的 ,从模电学到数电,然后再学其他的 | | |
|
|
|
|
[第7楼]
[ 回复时间:2007-11-06 10:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10 |
|
|
|
|
|
[第8楼]
[ 回复时间:2007-12-25 15:51 ]
[引用]
[回复]
[ top ] | |
荣誉值:117
信誉值:2
注册日期:2007-09-04 10:41 |
要想真正明白cpu执行的过程,是要学电路的 ,从模电学到数电,然后再学其他的
------------------
回复:要是这样课程也太多了吧,我觉的从汇编学起就够了,至于到底计算机怎么把01二进制用机器实现的可以不用管他~ | | |