中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 怎样在C语言中实现软关机或重新启动?
作者:
标题: 怎样在C语言中实现软关机或重新启动? 上一主题 | 下一主题
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『楼 主』:  怎样在C语言中实现软关机或重新启动?

如题,我现在急着要,

2004-6-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
boblhh9999
中级用户




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 2 楼』:  

在TC20中实现计算机启动的方法:
           unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
           ( *(void(far *)())code )(); //启动计算机

2004-7-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
leoweight
初级用户




积分 104
发帖 2
注册 2004-6-27
状态 离线
『第 3 楼』:  

楼上的大哥好高深呀

2004-7-1 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
boblhh9999
中级用户




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 4 楼』:  

这是夸我还是糗我???
资料来源转贴


2004-7-3 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wks_love
中级用户

新DOS时代假站长


积分 248
发帖 31
注册 2004-7-4
状态 离线
『第 5 楼』:  

这是什么意思啊?我怎么满眼的 括号和乱码!啥意思啊?
你怎么能把这背下来的?

2004-7-5 00:00
查看资料  发送邮件  发短消息 网志  OICQ (271127886)  编辑帖子  回复  引用回复
zoologist
初级用户




积分 115
发帖 5
注册 2004-6-28
状态 离线
『第 6 楼』:  

开玩笑~怎么可能!

2004-7-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
TurboY
中级用户

绝不写垃圾帖


积分 322
发帖 99
注册 2004-7-3
来自 湖北
状态 离线
『第 7 楼』:  

重启可用嵌入汇编asm jmp far 0ffffh:0000或调用INT19H
关机不清楚,应和ACPI的BIOS功能有关。



从95年开始用DOS3.2,96年在Windows3.1里认识了鼠标,97年开始用Win95,98年装过NetWare,99年迷过Linux,现在用WinXP、WinME和DOS7.1。一回首,从盲到忙,从忙到茫。
2004-7-7 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (123693086)  编辑帖子  回复  引用回复
zk88
初级用户




积分 130
发帖 10
注册 2003-11-4
状态 离线
『第 8 楼』:  



  Quote:
以下是引用boblhh9999在2004-7-1 上午 02:19:07的发言:
在TC20中实现计算机启动的方法: 
           unsigned char code[]={0xea,0x0,0x0,0xff,0xff}; 
           ( *(void(far *)())code&nbsp(); //启动计算机

完整代码 tc2.0 passed
unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
main()
{
( *(void(far *)())code )(); //启动计算机
}
注:纯DOS下一运行即重启


2004-7-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
profree
中级用户




积分 478
发帖 132
注册 2003-7-2
状态 离线
『第 9 楼』:  

真是厉害,谢谢

2004-7-7 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xy_god
中级用户

疯狂的流浪者


积分 276
发帖 56
注册 2003-9-25
状态 离线
『第 10 楼』:  



  Quote:
以下是引用boblhh9999在2004-7-1 上午 02:19:07的发言:
在TC20中实现计算机启动的方法: 
           unsigned char code[]={0xea,0x0,0x0,0xff,0xff}; 
           ( *(void(far *)())code&nbsp(); //启动计算机

{0xea,0x0,0x0,0xff,0xff}这个估计是一串实现重新启动的机器代码,
而*(void(far *)())code则是跳转到上述机器代码处执行,由于
不在同一段内,所以要用far来修饰。原理应该是这个样子吧?




临河居士
http://www.xygod.pc5.org
2004-7-8 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
boblhh9999
中级用户




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 11 楼』:  

10楼解释的很明白,惭愧我只会使用,没能解释明白

2004-7-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
笑傲江湖
初级用户

鹰击长空


积分 271
发帖 61
注册 2003-8-20
状态 离线
『第 12 楼』:  

{0xea,0x0,0x0,0xff,0xff}汇编释义:0xea-JMP 跳转指令0x0,0x0-0000h,偏移地址0xff,0xff-ffffh,基地址合起来就是:asm jmp far 0ffff:0000乱猜的,不要当真![em05][em05]



适合的,就是最好的!
DOS,永远的初恋情人。
2004-7-31 00:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
qb45
高级用户




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 13 楼』:  

用qb一句搞定OUT &H64, &HFE     



我(QB45)的照片与简历
http://www.programfan.com/club/showbbs.asp?id=197280
2004-8-1 00:00
查看资料  发送邮件  发短消息 网志  OICQ (406930019)  编辑帖子  回复  引用回复
henrya2
中级用户





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

为什么要用缓冲区溢出呢,直接调用中断不是很好吗

2006-2-25 21:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: