中国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语言中实现软关机或重新启动? 使用 LLM 解释/回答一下

如题,我现在急着要,


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




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

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


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




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

楼上的大哥好高深呀


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




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

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


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

新DOS时代假站长


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

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


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




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

开玩笑~怎么可能!


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

绝不写垃圾帖


积分 322
发帖 99
注册 2004-7-3
来自 湖北
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

重启可用嵌入汇编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 楼』:   使用 LLM 解释/回答一下

以下是引用boblhh9999在2004-7-1 上午 02:19:07的发言:
在TC20中实现计算机启动的方法: 
           unsigned char code={0xea,0x0,0x0,0xff,0xff}; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;*(void(far&nbsp;*)())code&nbsp<img src="images/smilies/face-wink.png" align="absmiddle" border="0">();&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 楼』:   使用 LLM 解释/回答一下

真是厉害,谢谢


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

疯狂的流浪者


积分 276
发帖 56
注册 2003-9-25
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

以下是引用boblhh9999在2004-7-1 上午 02:19:07的发言:
在TC20中实现计算机启动的方法:&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;code={0xea,0x0,0x0,0xff,0xff};&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;*(void(far&nbsp;*)())code&nbsp<img src="images/smilies/face-wink.png" align="absmiddle" border="0">();&nbsp;//启动计算机

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




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




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

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


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

鹰击长空


积分 271
发帖 61
注册 2003-8-20
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

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




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




积分 677
发帖 194
注册 2003-9-13
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

用qb一句搞定OUT &amp;H64, &amp;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 楼』:   使用 LLM 解释/回答一下

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


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

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


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



论坛跳转: