中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 关机的底层实现?? 上一主题 | 下一主题
ayw
新手上路





积分 12
发帖 4
注册 2006-11-17
状态 离线
『楼 主』:  关机的底层实现?? 使用 LLM 解释/回答一下

想知道关机的底层实现。。。。


另外:我仿照网上的一个帖子在win下编译freedos
怎么老出现一个错误?
F:\source\kernel>buildall.bat

Process UTILS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Compilation was aborted!
The system cannot find the batch label specified - daswarwohlnix


2007-1-13 23:51
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
gezi322
初级用户





积分 27
发帖 12
注册 2006-12-5
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

Mov dx,64h
Mov ax,0feh
OUT dx,ax


2007-1-16 22:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ayw
新手上路





积分 12
发帖 4
注册 2006-11-17
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

怎么调试的
保存为com格式的然后运行么?
我怎么没调试成功?


2007-1-20 02:16
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
darkradx
高级用户





积分 972
发帖 420
注册 2004-5-16
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

那是KBC重起的代码




平生进退如飙风
2007-1-21 09:33
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
defrag
中级用户

痴迷DOS者


积分 456
发帖 570
注册 2004-10-9
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

他好象也弄错了,是
mov al,feh
out 64h,al
不过关机是
Mov AX, 5301h
Xor BX, BX
Int 15h
Mov AX, 530Eh
Xor BX, BX
Mov CX, 102h
Int 15h
Mov AX, 5307h
Mov BX, 1
Mov CX, 3
Int 15h




DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
2007-2-12 03:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
defrag
中级用户

痴迷DOS者


积分 456
发帖 570
注册 2004-10-9
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

code segment
assume cs:code,ds:code
org 100h
start:
Mov AX,5301h
Xor BX,BX
Int 15h
Mov AX,530Eh
Xor BX,BX
Mov CX,102h
Int 15h
Mov AX,5307h
Mov BX,1
Mov CX,3
Int 15h
cli
mov ds,0
mov [6],cs
mov [4],offset halt
halt:
JMP halt
code ends
end start
;关不掉就死机




DOS不是万能的,没有DOS是万万不能的
自古系统谁无死?留取胆清照汗青!uploadImages/20035317345478982.png
2007-2-12 04:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
dsysps
初级用户





积分 98
发帖 34
注册 2006-11-3
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

void ReBootSys()
{
asm push 0xffff
asm push 0x0000
asm retf
}


2007-3-15 21:51
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ons511
新手上路





积分 2
发帖 1
注册 2007-3-14
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

关机也好重新启动也好,目前论坛中的方法并不是万能的。

重启通常的方法是两种:
1是利用缓冲区溢出的方法;2是使用INT19.
但对于特殊的BIOS或者主板并不起作用。


2007-3-16 03:22
查看资料  发短消息  网志   编辑帖子  回复  引用回复
henrya2
中级用户





积分 486
发帖 171
注册 2006-2-12
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

还有一种简单重启方法
直接在DEBUG
-a
jmp FFFF:0
-g

如果用了SMARTDRV等一些磁盘缓冲软件,可能会导致文件丢失




Those who do not study the past are condemned to repeat it
2007-3-19 07:27
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
henrya2
中级用户





积分 486
发帖 171
注册 2006-2-12
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

void ReBootSys()
{
asm push 0xffff
asm push 0x0000
asm retf
}

其实是,把return address替换成了FFFF:0




Those who do not study the past are condemned to repeat it
2007-3-19 07:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
henrya2
中级用户





积分 486
发帖 171
注册 2006-2-12
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

但不是缓冲区溢出(有点像),原来的return address还在堆栈里(在新压入的return address后面)




Those who do not study the past are condemned to repeat it
2007-3-19 07:47
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
wzsunlight
初级用户





积分 107
发帖 52
注册 2007-3-10
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

关机?重新启动?
以上是重新启动


2007-3-22 17:37
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
wzsunlight
初级用户





积分 107
发帖 52
注册 2007-3-10
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下


win /z
可以关机

但不知是否喜欢


2007-3-29 22:37
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
CrispH
初级用户





积分 108
发帖 49
注册 2007-3-9
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

向 PMBASE + 05h 的地方丢 3C h


2007-3-29 23:14
查看资料  发短消息  网志   编辑帖子  回复  引用回复
darkradx
高级用户





积分 972
发帖 420
注册 2004-5-16
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

楼上兄台是做BIOS Porting的?牛啊




平生进退如飙风
2007-5-8 03:01
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: