中国DOS联盟论坛

中国DOS联盟

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

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

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





积分 12
发帖 4
注册 2006-11-17
状态 离线
『楼 主』:  关机的底层实现??

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


另外:我仿照网上的一个帖子在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 楼』:  

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

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





积分 12
发帖 4
注册 2006-11-17
状态 离线
『第 3 楼』:  

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

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





积分 972
发帖 420
注册 2004-5-16
状态 离线
『第 4 楼』:  

那是KBC重起的代码



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

痴迷DOS者


积分 456
发帖 570
注册 2004-10-9
状态 离线
『第 5 楼』:  

他好象也弄错了,是
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是万万不能的
自古系统谁无死?留取胆清照汗青![upload=bmp]uploadImages/20035317345478982.png[/upload]
2007-2-12 03:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
defrag
中级用户

痴迷DOS者


积分 456
发帖 570
注册 2004-10-9
状态 离线
『第 6 楼』:  

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是万万不能的
自古系统谁无死?留取胆清照汗青![upload=bmp]uploadImages/20035317345478982.png[/upload]
2007-2-12 04:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dsysps
初级用户





积分 98
发帖 34
注册 2006-11-3
状态 离线
『第 7 楼』:  

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

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





积分 2
发帖 1
注册 2007-3-14
状态 离线
『第 8 楼』:  

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

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

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





积分 486
发帖 171
注册 2006-2-12
状态 离线
『第 9 楼』:  

还有一种简单重启方法
直接在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 楼』:  

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 楼』:  

但不是缓冲区溢出(有点像),原来的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 楼』:  

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

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





积分 107
发帖 52
注册 2007-3-10
状态 离线
『第 13 楼』:  


win /z
可以关机

但不知是否喜欢

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





积分 108
发帖 49
注册 2007-3-9
状态 离线
『第 14 楼』:  

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

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





积分 972
发帖 420
注册 2004-5-16
状态 离线
『第 15 楼』:  

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



平生进退如飙风
2007-5-8 03:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: