Programming 版 (精华区)
发信人: Scorpion (但教心似金钿坚), 信区: Programming
标 题: [合集]谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2002年03月28日09:05:49 星期四), 站内信件
发信人: Scorpion (但教心似金钿坚), 信区: Programming
标 题: [合集]*.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2002年03月28日08:39:34 星期四), 站内信件
发信人: javan (willmore), 信区: Programming
标 题: *.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2000年10月25日18:08:42 星期三), 转信
小声的问一句
--
IF I COULD, I WOULD.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.248]
发信人: terminate (八荒六合·惟我独尊), 信区: Programming
标 题: Re: *.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2000年10月25日18:14:54 星期三), 站内信件
字符串比较的话,就这些。.cpp是C++独有的源程序。
【 在 javan (willmore) 的大作中提到: 】
: 就这些?
: 【 在 terminate (八荒六合·惟我独尊) 的大作中提到: 】
: : 少两个P
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.247]
发信人: lofe (〖感激生活〗), 信区: Programming
标 题: Re: *.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2000年10月25日18:20:50 星期三), 站内信件
对标准C编译器来说,没有什么不同;但支持C++的编译器对他们则有
不同的处理方式:
.c 将默认为ANSI C源文件并严格按照标准C来编译,如果用到了C++的
语法或新特性,如new操作符,将不能通过编译;
.cpp则默认为C++的源文件。
【 在 javan (willmore) 的大作中提到: 】
: 小声的问一句
--
耶稣说:人不能只靠面包过活,你的心灵需要比面包
更有营养的东西,你有多久没有唱歌,没有到大自然中走
一走,没有读诗?
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: malacs.hit.edu.cn]
※ 修改:·lofe 於 10月25日18:24:27 修改本文·[FROM: malacs.hit.edu.cn]
发信人: javan (willmore), 信区: Programming
标 题: Re: *.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2000年10月25日18:23:01 星期三), 转信
可是在tc3.0上编译
main()
{
printf("xxxxxxx");}
它提示说"printf should have a prototype",将文件名改成*.c后就正常了
【 在 terminate (八荒六合·惟我独尊) 的大作中提到: 】
: 字符串比较的话,就这些。.cpp是C++独有的源程序。
: 【 在 javan (willmore) 的大作中提到: 】
: : 就这些?
--
IF I COULD, I WOULD.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.248]
发信人: terminate (八荒六合·惟我独尊), 信区: Programming
标 题: Re: *.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2000年10月25日18:24:51 星期三), 站内信件
呵呵,C++的所有函数都必须声明原型。
你加上#include "stdio.h"就可以了。
【 在 javan (willmore) 的大作中提到: 】
: 可是在tc3.0上编译
: main()
: {
: printf("xxxxxxx");}
: 它提示说"printf should have a prototype",将文件名改成*.c后就正常了
: 【 在 terminate (八荒六合·惟我独尊) 的大作中提到: 】
: : 字符串比较的话,就这些。.cpp是C++独有的源程序。
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.247]
发信人: xxxxx (从零开始), 信区: Programming
标 题: Re: *.C与*.CPP有和区别?
发信站: 哈工大紫丁香 (2000年10月26日09:01:23 星期四), 站内信件
hehe.是的.有些规则(属于c语言的), c和c++要求不一样.比如函数原型.
另外还有一些.比如c++支持inline,而c不支持.最新的c++ ansi标准扩大了
这些差别,比如enum类型在声明变量时可以不使用enum关键字.
对turbo c++而言,还有一个相关的宏_cplusplus. 当此宏定义时,按c++编译.
【 在 terminate (八荒六合·惟我独尊) 的大作中提到: 】
: 呵呵,C++的所有函数都必须声明原型。
: 你加上#include "stdio.h"就可以了。
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: alioth.hit.edu.cn]
发信人: utah (尤他去吧), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月09日12:12:32 星期五), 站内信件
还是用汇编吧
我记得让那个中断还是端口为高电位时就可以
实现关机
【 在 zcx (齐云) 的大作中提到: 】
--
我爱你 可是我不敢说
我怕我说了 我就会死去
我不怕死
我怕我死了 再没有人象我这样爱你
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: as.hit.edu.cn]
发信人: terminate (沧海一声啸), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月09日12:29:29 星期五), 站内信件
纯dos下有关电源的汇编指令?是我孤陋寡闻么?糊涂了!
【 在 utah (尤他去吧) 的大作中提到: 】
: 还是用汇编吧
: 我记得让那个中断还是端口为高电位时就可以
: 实现关机
: 【 在 zcx (齐云) 的大作中提到: 】
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.236]
发信人: utah (尤他去吧), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月09日13:16:34 星期五), 站内信件
那你就debug吧
【 在 terminate (沧海一声啸) 的大作中提到: 】
: 纯dos下有关电源的汇编指令?是我孤陋寡闻么?糊涂了!
: 【 在 utah (尤他去吧) 的大作中提到: 】
: : 还是用汇编吧
: : 我记得让那个中断还是端口为高电位时就可以
: : 实现关机
--
我爱你 可是我不敢说
我怕我说了 我就会死去
我不怕死
我怕我死了 再没有人象我这样爱你
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: as.hit.edu.cn]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月09日13:53:02 星期五), 站内信件
应该就是一个BIOS中断调用吧?
我好像见过这样的软件,隐约记得
【 在 terminate (沧海一声啸) 的大作中提到: 】
: 纯dos下有关电源的汇编指令?是我孤陋寡闻么?糊涂了!
: 【 在 utah (尤他去吧) 的大作中提到: 】
: : 还是用汇编吧
: : 我记得让那个中断还是端口为高电位时就可以
: : 实现关机
--
太阳当空照,灯泡呵呵笑,
mm说,早上好,你为什么又不理我了?
我要做光光,光光没烦恼,
高高跳,大声叫,光光的乐趣你们不知道!
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: jinqiao (一场游戏一场梦), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月09日20:49:36 星期五), 站内信件
也不知道我什么时候看到的,反正存下来了。
一个在TC下重起计算机的程序,也没有试过,不知道好不好使。
也不知道对你有没有用。
unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
( *(void(far *)())code )(); //启 动 计 算 机
【 在 zcx (齐云) 的大作中提到: 】
--
I Believe I can Fly!
I Believe I can Touch The Sky!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.112.3.163]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月09日20:51:41 星期五), 站内信件
原来是一个call
【 在 jinqiao (一场游戏一场梦) 的大作中提到: 】
: 也不知道我什么时候看到的,反正存下来了。
: 一个在TC下重起计算机的程序,也没有试过,不知道好不好使。
: 也不知道对你有没有用。
: unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
: ( *(void(far *)())code )(); //启 动 计 算 机
: 【 在 zcx (齐云) 的大作中提到: 】
--
太阳当空照,灯泡呵呵笑,
mm说,早上好,你为什么又不理我了?
我要做光光,光光没烦恼,
高高跳,大声叫,光光的乐趣你们不知道!
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: himem (单行道), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日10:23:43 星期六), 站内信件
电源关机何重起动机理事不同的.
【 在 jinqiao (一场游戏一场梦) 的大作中提到: 】
: 也不知道我什么时候看到的,反正存下来了。
: 一个在TC下重起计算机的程序,也没有试过,不知道好不好使。
: 也不知道对你有没有用。
: unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
: ( *(void(far *)())code )(); //启 动 计 算 机
: 【 在 zcx (齐云) 的大作中提到: 】
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.236]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日12:55:35 星期六), 站内信件
看不懂,Sun给解释一下
【 在 Sun (大灯泡) 的大作中提到: 】
: 原来是一个call
: 【 在 jinqiao (一场游戏一场梦) 的大作中提到: 】
: : 也不知道我什么时候看到的,反正存下来了。
: : 一个在TC下重起计算机的程序,也没有试过,不知道好不好使。
: : 也不知道对你有没有用。
: : unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
: : ( *(void(far *)())code )(); //启 动 计 算 机
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.97.242.157]
发信人: lofe (〖感激生活·善待自我〗), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日15:28:44 星期六), 站内信件
一个中断调用。
在DOS系统下,int 19就直接热启了。Windows95的Command Prompt Mode
下似乎也好用,我通常这么快速重启 :) 若不跳过自检,则需在相应寄存
器中设置一些参数。
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 看不懂,Sun给解释一下
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : 原来是一个call
--
═══════════════════﹃
过 而 结 要 情 有 结 而 过 要 情 有
程 不 果 的 , 些 果 不 程 的 , 些
。 是 , 是 重 事 ; 是 , 是 重 事
﹄═══════════════════
生活是件激动人心的事。人生不如意十之八九,要懂得感激生活。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: DnC.hit.edu.cn]
※ 修改:·lofe 於 02月10日15:30:57 修改本文·[FROM: DnC.hit.edu.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日15:50:59 星期六), 站内信件
怎么看出是一个中断调用?
Call[] 里面放的是中断向量和功能?
还有 (far *)()是什么函数?
在有 int19不是重新启动吗?关机一定是掉用APM,DOS支持吗?
【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: 一个中断调用。
: 在DOS系统下,int 19就直接热启了。Windows95的Command Prompt Mode
: 下似乎也好用,我通常这么快速重启 :) 若不跳过自检,则需在相应寄存
: 器中设置一些参数。
: 【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: : 看不懂,Sun给解释一下
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.97.242.157]
发信人: lofe (〖感激生活·善待自我〗), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日16:08:50 星期六), 站内信件
函数其实与变量一样,在汇编级都是通过内存地址来访问。
中断向量就是操作系统所提供的一些中断服务程序的内存
地址,通过这些地址就可以调用相应的功能。
void(far *)() 是 函数指针 类型,可告诉编译器其后的
地址是某一返回类型为void,参数列表为空的函数的地址,
可以调用。
int 19 可实现重启功能。关机我想只能调用APM的功能,
这是主板提供的功能,由BIOS提供调用函数。既然如此,
DOS应该支持吧?
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 怎么看出是一个中断调用?
: Call[] 里面放的是中断向量和功能?
: 还有 (far *)()是什么函数?
: 在有 int19不是重新启动吗?关机一定是掉用APM,DOS支持吗?
: 【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: : 一个中断调用。
: : 在DOS系统下,int 19就直接热启了。Windows95的Command Prompt Mode
: : 下似乎也好用,我通常这么快速重启 :) 若不跳过自检,则需在相应寄存
: : 器中设置一些参数。
--
═══════════════════﹃
过 而 结 要 情 有 结 而 过 要 情 有
程 不 果 的 , 些 果 不 程 的 , 些
。 是 , 是 重 事 ; 是 , 是 重 事
﹄═══════════════════
生活是件激动人心的事。人生不如意十之八九,要懂得感激生活。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: DnC.hit.edu.cn]
※ 修改:·lofe 於 02月10日16:38:31 修改本文·[FROM: DnC.hit.edu.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日16:32:24 星期六), 站内信件
我想问
far *指向的是函数的入口,那么这个函数又是什么?
(*(*void(far *)())code)也算一个函数,
(*void(far *)())code 对code 作了什么?
【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: 函数其实与变量一样,在汇编级都是通过内存地址来访问。
: 中断向量就是操作系统所提供的一些中断服务程序的内存
: 地址,通过这些地址就可以调用相应的功能。
: (far void *)() 是 函数指针 类型,可告诉编译器其后的
: 地址是某一返回类型为void,参数列表为空的函数的地址,
: 可以调用。
: int 19 可实现重启功能。关机我想只能调用APM的功能,
: 这是主板提供的功能,由BIOS提供调用函数。既然如此,
: DOS应该支持吧?
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ppp82.hr.hl.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日16:35:15 星期六), 站内信件
【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: 函数其实与变量一样,在汇编级都是通过内存地址来访问。
: 中断向量就是操作系统所提供的一些中断服务程序的内存
: 地址,通过这些地址就可以调用相应的功能。
: (far void *)() 是 函数指针 类型,可告诉编译器其后的
~~~~~~~~~~~void(far *)()???
: 地址是某一返回类型为void,参数列表为空的函数的地址,
: 可以调用。
: int 19 可实现重启功能。关机我想只能调用APM的功能,
: 这是主板提供的功能,由BIOS提供调用函数。既然如此,
: DOS应该支持吧?
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ppp82.hr.hl.cn]
发信人: lofe (〖感激生活·善待自我〗), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日16:37:14 星期六), 站内信件
jinqiao的文中如下:
unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
( *(void(far *)())code )(); //启 动 计 算 机
(void(far *)())code 将 code 解释为函数指针;
*(void(far *)())code 便是这个指针所指向的函数。
(*(void(far *)())code)() 是对这函数进行调用。
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 我想问
: far *指向的是函数的入口,那么这个函数又是什么?
: (*(*void(far *)())code)也算一个函数,
^
这个'*'是多余的
: (*void(far *)())code 对code 作了什么?
: 【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: : 函数其实与变量一样,在汇编级都是通过内存地址来访问。
: : 中断向量就是操作系统所提供的一些中断服务程序的内存
: : 地址,通过这些地址就可以调用相应的功能。
: : (far void *)() 是 函数指针 类型,可告诉编译器其后的
--
生活,少不了思考;人生,少不了追求。
耶稣说:人不能只靠面包过活,你的心灵需要比面包
更有营养的东西,你有多久没有唱歌,没有到大自然中走
一走,没有读诗?
生活,是美丽的,你还没发现?
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: DnC.hit.edu.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日16:41:53 星期六), 站内信件
【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: jinqiao的文中如下:
: unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
: ( *(void(far *)())code )(); //启 动 计 算 机
: (void(far *)())code 将 code 解释为函数指针;
也就是说 (void(far *)())是一个cast
将char * 强制转换为函数指针
不过,这样是否安全?
char*所指得的地方是代码段还是数据段?
编译器怎么知道?
: *(void(far *)())code 便是这个指针所指向的函数。
: (*(void(far *)())code)() 是对这函数进行调用。
: 【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: : 我想问
: : far *指向的是函数的入口,那么这个函数又是什么?
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ppp102.hr.hl.cn]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日17:51:31 星期六), 站内信件
这就是C的灵活之所在了
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: : jinqiao的文中如下:
: : unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
: : ( *(void(far *)())code )(); //启 动 计 算 机
: : (void(far *)())code 将 code 解释为函数指针;
: 也就是说 (void(far *)())是一个cast
: 将char * 强制转换为函数指针
: 不过,这样是否安全?
: char*所指得的地方是代码段还是数据段?
: 编译器怎么知道?
--
太阳当空照,灯泡呵呵笑,
mm说,早上好,你为什么又不理我了?
我要做光光,光光没烦恼,
高高跳,大声叫,光光的乐趣你们不知道!
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日17:53:36 星期六), 站内信件
我又明白了,呵呵
【 在 Sun (大灯泡) 的大作中提到: 】
: 这就是C的灵活之所在了
: 【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: : 也就是说 (void(far *)())是一个cast
: : 将char * 强制转换为函数指针
: : 不过,这样是否安全?
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ppp113.hr.hl.cn]
发信人: mantisW (树根), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日17:59:24 星期六), 站内信件
0XEA,0X00,0X00,0XFF,0XFF
翻译成8086汇编好像是
JMP FFFF:0000
这好像是一条复位语句
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 我又明白了,呵呵
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : 这就是C的灵活之所在了
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.229.84]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日18:02:09 星期六), 站内信件
应该是的,不是调用中断
【 在 mantisW (树根) 的大作中提到: 】
: 0XEA,0X00,0X00,0XFF,0XFF
: 翻译成8086汇编好像是
: JMP FFFF:0000
: 这好像是一条复位语句
: 【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: : 我又明白了,呵呵
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ppp113.hr.hl.cn]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日18:10:14 星期六), 站内信件
翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
不是指令。
所以,这段程序应该是一个32位环境下的程序,最后的功能是:
call ff:ff0000ea
大概是这样吧?
【 在 mantisW (树根) 的大作中提到: 】
: 0XEA,0X00,0X00,0XFF,0XFF
: 翻译成8086汇编好像是
: JMP FFFF:0000
: 这好像是一条复位语句
: 【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: : 我又明白了,呵呵
--
太阳当空照,灯泡呵呵笑,
mm说,早上好,你为什么又不理我了?
我要做光光,光光没烦恼,
高高跳,大声叫,光光的乐趣你们不知道!
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: mantisW (树根), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日18:30:20 星期六), 站内信件
code是地址,但code地址对应下的内容是指令!!!!!!
在调用函数时
才有call xxxx:xxxx
不是函数本身。code就是xxxx:xxxx!
【 在 Sun (大灯泡) 的大作中提到: 】
: 翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
: 不是指令。
: 所以,这段程序应该是一个32位环境下的程序,最后的功能是:
: call ff:ff0000ea
: 大概是这样吧?
: 【 在 mantisW (树根) 的大作中提到: 】
: : 0XEA,0X00,0X00,0XFF,0XFF
: : 翻译成8086汇编好像是
: : JMP FFFF:0000
: : 这好像是一条复位语句
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.229.84]
※ 修改:·mantisW 於 02月10日18:32:09 修改本文·[FROM: 202.118.229.84]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日18:31:47 星期六), 站内信件
Oh...yes,yes.......
【 在 mantisW (树根) 的大作中提到: 】
: code是地址,但code地址对应下的内容是指令!!!!!!
: 在调用函数时
: 才有call xxxx:xxxx
: 不是函数本身。
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : 翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
: : 不是指令。
: : 所以,这段程序应该是一个32位环境下的程序,最后的功能是:
: : call ff:ff0000ea
--
太阳当空照,灯泡呵呵笑,
mm说,早上好,你为什么又不理我了?
我要做光光,光光没烦恼,
高高跳,大声叫,光光的乐趣你们不知道!
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日19:09:00 星期六), 站内信件
难道还要记机器代码?
【 在 Sun (大灯泡) 的大作中提到: 】
: Oh...yes,yes.......
: 【 在 mantisW (树根) 的大作中提到: 】
: : code是地址,但code地址对应下的内容是指令!!!!!!
: : 在调用函数时
: : 才有call xxxx:xxxx
: : 不是函数本身。
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.97.242.5]
发信人: lofe (〖感激生活·善待自我〗), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日20:13:45 星期六), 站内信件
在C/C++中,只有通过函数调用才能执行code地址下的指令,
这时code就相当于函数指针。
如果在汇编中,当然可以直接jmp了。
【 在 mantisW (树根) 的大作中提到: 】
: code是地址,但code地址对应下的内容是指令!!!!!!
: 在调用函数时
: 才有call xxxx:xxxx
: 不是函数本身。code就是xxxx:xxxx!
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : 翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
: : 不是指令。
: : 所以,这段程序应该是一个32位环境下的程序,最后的功能是:
: : call ff:ff0000ea
--
我们更要探讨Windows系统编程技术(Programming)
推荐:Programming版 精华区->经典文章
独孤九剑的最高境界是不拿剑
编程的最高境界是无所谓工具
有空的时候,看看 MSDN ,真的很不错。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: DnC.hit.edu.cn]
※ 修改:·lofe 於 02月10日20:13:58 修改本文·[FROM: DnC.hit.edu.cn]
发信人: terminate (指南针), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日20:17:26 星期六), 站内信件
呵呵,这个说法我同意.
【 在 mantisW (树根) 的大作中提到: 】
: code是地址,但code地址对应下的内容是指令!!!!!!
: 在调用函数时
: 才有call xxxx:xxxx
: 不是函数本身。code就是xxxx:xxxx!
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : 翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
: : 不是指令。
: : 所以,这段程序应该是一个32位环境下的程序,最后的功能是:
: : call ff:ff0000ea
--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.236]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日20:46:45 星期六), 站内信件
【 在 Sun (大灯泡) 的大作中提到: 】
: 翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
: 不是指令。
: 所以,这段程序应该是一个32位环境下的程序,最后的功能是:
: call ff:ff0000ea
~~~~~~~~~~~~什么意思?
看不懂了
: 大概是这样吧?
: 【 在 mantisW (树根) 的大作中提到: 】
: : 0XEA,0X00,0X00,0XFF,0XFF
: : 翻译成8086汇编好像是
: : JMP FFFF:0000
: : 这好像是一条复位语句
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: ppp162.hr.hl.cn]
发信人: lofe (〖感激生活·善待自我〗), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日20:56:59 星期六), 站内信件
为了看究竟,我在VC6下调试了这段代码:
unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
( *(void(far *)())code )(); //启 动 计 算 机
为了编译通过,需要将code强制转换:
( *(void(far *)()) ((void*)code) )();
^^^^^^^
生成 ASM 文件中相应部分如下:
...
; 24 : unsigned char code[]={0xea,0x0,0x0,0xff,0xff};
mov BYTE PTR _code$[ebp], 234 ; 000000eaH
mov BYTE PTR _code$[ebp+1], 0
mov BYTE PTR _code$[ebp+2], 0
mov BYTE PTR _code$[ebp+3], 255 ; 000000ffH
mov BYTE PTR _code$[ebp+4], 255 ; 000000ffH
; 25 : ( *(void(far *)()) ((void*)code) )();
lea eax, DWORD PTR _code$[ebp]
mov esi, esp
call eax
cmp esi, esp
call __chkesp
...
可以看到,call eax 就是函数调用了。
当然,code里面的内容只是复位指令,并不是系统提供的中断调用。
【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: 在C/C++中,只有通过函数调用才能执行code地址下的指令,
: 这时code就相当于函数指针。
: 如果在汇编中,当然可以直接jmp了。
: 【 在 mantisW (树根) 的大作中提到: 】
: : code是地址,但code地址对应下的内容是指令!!!!!!
: : 在调用函数时
: : 才有call xxxx:xxxx
: : 不是函数本身。code就是xxxx:xxxx!
--
生活,少不了思考;人生,少不了追求。
耶稣说:人不能只靠面包过活,你的心灵需要比面包
更有营养的东西,你有多久没有唱歌,没有到大自然中走
一走,没有读诗?
生活,是美丽的,你还没发现?
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: DnC.hit.edu.cn]
※ 修改:·lofe 於 02月10日21:03:04 修改本文·[FROM: DnC.hit.edu.cn]
发信人: lofe (〖感激生活·善待自我〗), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月10日21:25:56 星期六), 站内信件
-e 100 ea 0 0 ff ff
-g
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: r cs:ffff
: r ip:0000
: t
: ??
: 是这样吗?
: 【 在 lofe (〖感激生活·善待自我〗) 的大作中提到: 】
: : 我在debug下执行的,好使。
--
═══════════════════﹃
过 而 结 要 情 有 结 而 过 要 情 有
程 不 果 的 , 些 果 不 程 的 , 些
。 是 , 是 重 事 ; 是 , 是 重 事
﹄═══════════════════
生活是件激动人心的事。人生不如意十之八九,要懂得感激生活。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: DnC.hit.edu.cn]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月11日18:10:04 星期天), 站内信件
这东西不是记住的,而是用过了,因为脸熟而记住的。
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 难道还要记机器代码?
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : Oh...yes,yes.......
--
如果程序员懂得了软件工程,
那么他就不再是牛,
更不是妓女了。
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: Sun (大灯泡), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月11日18:11:44 星期天), 站内信件
我犯了一个错误,那就是把对code的内容赋值那一段当做了对指针赋值,
那样执行结果就是这个。
【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: 【 在 Sun (大灯泡) 的大作中提到: 】
: : 翻译成汇编却是这样,但是,这种函数指针用法,code应该是函数的入口地址,
: : 不是指令。
: : 所以,这段程序应该是一个32位环境下的程序,最后的功能是:
: : call ff:ff0000ea
: ~~~~~~~~~~~~什么意思?
: 看不懂了
: : 大概是这样吧?
--
如果程序员懂得了软件工程,
那么他就不再是牛,
更不是妓女了。
知道中国软件业为什么落后吗?
忽视软件工程,中国软件业将永远落后下去...
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: sunner.hit.edu.cn]
发信人: zhangyan (今朝有水今朝灌), 信区: Programming
标 题: Re: 谁会在纯dos下实现电源关机(内空)
发信站: 哈工大紫丁香 (2001年02月11日20:06:14 星期天), 站内信件
hehe
我开始也把它当做是中断向量了
【 在 Sun (大灯泡) 的大作中提到: 】
: 我犯了一个错误,那就是把对code的内容赋值那一段当做了对指针赋值,
: 那样执行结果就是这个。
: 【 在 zhangyan (今朝有水今朝灌) 的大作中提到: 】
: : ~~~~~~~~~~~~什么意思?
: : 看不懂了
--
Take it slow, Set it couse, Make it happen.
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.97.225.204]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:213.954毫秒