当前位置: 代码迷 >> 汇编语言 >> 计算机关机的底层实现?(不是重启),该如何解决
  详细解决方案

计算机关机的底层实现?(不是重启),该如何解决

热度:9089   发布时间:2013-02-26 00:00:00.0
计算机关机的底层实现???(不是重启)
如题!!!
顺便问下:
控制计算机开机(比如远程开机)怎么实现的???
当然,我的意思不是说人工实现。。。。。。
同样,不要高级语言什么调用API之类的
我想知道底层的过程,比如怎么用汇编实现。。。。

------解决方案--------------------------------------------------------
在最底层,关机是通过给端口发送信息(实际就是操作了8042芯片)来完成的
------解决方案--------------------------------------------------------
底层关机汇编实现调用BIOS中断int 15h实现,在win98或dos可实现,但是nt以上系统要权限,将下面代码加入你的程序
MOV AX,5301H
XOR BX,BX
INT 15H
MOV AX,530EH
XOR BX,BX
MOV CX,0102H
INT 15H
MOV AX,5307H ;同上
MOV BX,0001H
MOV CX,0003H
INT 15H
我曾经跟踪进int 15上这个中断处理代码中,但是没能跟过完,因为代码首先会关闭显示器,这样我啥也看不到了,没跟下去.
------解决方案--------------------------------------------------------
简单解释一下INT15关于关机的功能说明.
MOV AX,5301H ;高级电源管理功能V1.0,连接实模式接口
XOR BX,BX   ;系统BIOS设备ID
INT 15H

MOV AX,530EH ;高级电源管理功能,配置连接设备的版本号
XOR BX,BX ;系统BIOS设备ID
MOV CX,0102H ;CH主版本号CL从版本号
INT 15H

MOV AX,5307H ;高级电源管理功能,设置电源状态
MOV BX,0001H ;设备ID,1:所有设备
MOV CX,0003H ;状态,3:表示关机
INT 15H

  相关解决方案